私はこのようなクエリを持っている:MySQLクエリを短縮する方法はありますか?これには多くの条件がありますか?
SELECT field
FROM table
WHERE column1 = 'x' OR
column2 = 'x' OR
column3 = 'x' OR
column4 = 'x'...
は今と同じ値をチェックするための列がたくさんあります。私はこれを短縮する方法はありますか?
私はこのようなクエリを持っている:MySQLクエリを短縮する方法はありますか?これには多くの条件がありますか?
SELECT field
FROM table
WHERE column1 = 'x' OR
column2 = 'x' OR
column3 = 'x' OR
column4 = 'x'...
は今と同じ値をチェックするための列がたくさんあります。私はこれを短縮する方法はありますか?
SELECT field FROM table WHERE 'x' in (column1, column2, column3, ....)
Mysqlフルテキスト検索機能を使用する必要があります。ここで
は、あなたがフルテキストとあなたのコード内で使用できるクエリです:
SELECT * FROM your_table_name
WHERE MATCH (yourcolumn1,yourcolumn2,...)
AGAINST ('your texts to search' IN BOOLEAN MODE);
注:あなたが検索したい列にフルテキストインデックスを適用する必要があります。
select * from table
where
match (column1, column2, column3)
against ('xxx' IN BOOLEAN MODE)
を参照してください:http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html
ニース - しかし、私は本当の問題は、スキーマが正規化されていないということである疑いがある
あなたはAND OR条件の組み合わせでなどで問い合わせを行うことができます。 – symcbean
サイトによっては、「すべてのフィールドを検索」機能または「すべてのチェックフィールドを検索する」機能があります。これは現実の状況で有用である可能性があります。 – bdares
私はそれを試してみる、ありがとう。 –