2011-12-29 14 views
1

私はMySQLで、以下のデータを持っている:SQLクエリのフィールドに一部のデータを検索する

file-id 
32-534 
32-536 
32-537 
32-584 
32-594 
46-865 
46-863 
46-837 
46-867 

私は、32ビットまたは46-のいずれかですべてのデータを参加するために、SQLクエリを書きたいです。どうやってやるの?

Select * from TABLE WHERE file-id = ???? 

答えて

0
SELECT * FROM table_name WHERE file-id REGEXP '^32' OR file-id REGEXP '^46'; 
+1

正規表現が好きよりも高価であり、およびファイルid'は、最も可能性が高いことを意味します '引用ませんクエリは "file"(つまりおそらく無効なクエリ)から "id"を減算するものとして解釈されます。 – pgl

2

これは動作するはずです:

SELECT * FROM TABLE WHERE 'file-id' LIKE '32-%' OR 'file-id' LIKE '46-%'; 
0

試してみてください。

SELECT * FROM table_name WHERE file-id REGEXP '^(32|46)'; 
+1

REGEXPはLIKEよりも高価であり、 'file-id'を引用していないと、おそらくクエリが" file "から" id "を減算していると解釈されます(おそらく無効なクエリ)。 – pgl

関連する問題