in_stores
の列を持つ 'offer'という名前のテーブルがあります。それは、このオファーが利用可能である店舗のIDが含まれているグラフィカルこのテーブルは次のようになります。SQLを使用して配列内の文字列を検索
id | title | in_stores
1 | Shoes | 1002,1003
2 | Gloves | 1020,1011
3 | Shades | 1002,1009
4 | Hats | 1010,1002
5 | Shoes | 1220
6 | Shirts | 1010
7 | Hats | 1002
in_stores
の各値は、PHPによるimplode()
機能で保存されます。
私の質問: がどのように単一mysqli
クエリでクエリは、ID 1,3,4,7との申し出を返す必要があります。この例では、ID 1002と店舗で利用可能なすべてのオファーを選択します。私はexplode()のようなものをまず配列内の結果を得るために使い、in_array()より特定のidを検索するべきだと思うが、これらの関数はすべてSQL内で利用できない。
http://stackoverflow.com/questions/3653462/is-storing-a-delimited-list-in-a-database-column-really-that-bad/3653574 – e4c5
検索する必要があるカンマ区切りの値は次のとおりです。非常に悪い考えです。この問題を避けるためにデザインを変更するのは時期尚早ですか? – PaulF