次のような値を持つpapers
というテーブルに呼び出された列がありますproducts
。
「1,2,3,4,5,6」と他の行にはこの「3,4,5」のようになっています
このクエリをphpで起動したいのですが、
SELECT * from products where papers like "%5%" AND papers like "%3%" and papers like "%4%"
TL; DR
順序を無視して、複数の文字列を持つ列を選択したい
MySQLでは、次を使用できますfind_in_set()
。
select *
from products
where find_in_set('3', papers) and find_in_set('4', papers) and find_in_set('5', papers)
あなたの質問は欠陥のあるデータベース設計を示唆していることに注意してください。1つの文字列列に複数の整数値を格納しないでください。代わりに、外部キー制約を介してメインテーブルを参照する別の行(おそらく別のテーブル)に各整数値を含める必要があります。推奨読書:区切られたリストをデータベース列に格納することは本当に悪いですか?。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加