ホームページ >バックエンド開発 >PHPチュートリアル >1 つのフィールド内の複数の値をカンマで区切ると、データ テーブルのこのフィールド内の特定の値を含むすべての ID が取得されます。
例:
id user_id 1 2,32,4 2 3,63,2 3 4,62,7
user_id
の user_id
中有2的id
,结果=》1,2(含有单独的2)
like的方式显然行不通
简洁漂亮的sql语句
看到楼下的有大大说改字段结构的,目前可能不太允许这样。因为整个项目都是通的,如果我在这一个地方动了,其他地方也有调用这个地方的时候,由于字段结构改变,可能会出现不可预测的问题。
举栗子:
id user_id 1 2,32,4 2 3,63,2 3 4,62,7
取出user_id
中有2的id
2
id
を取り出します。結果 =》1,2 (別個の 2 を含む)階下で誰かがフィールド構造を変更する必要があると言っているのを見かけましたが、現時点ではそれは許可されていない可能性があります。プロジェクト全体がオープンなため、ここを動かしてここを別の場所に呼び出すと、フィールド構造の変更により予期せぬ問題が発生する可能性があります。
SELECT id FROM table WHERE find_in_set('2',user_id);
user_id
の 2
で id
を取り出し、結果 =》1 ,2 (別の 2 が含まれます)
のようなメソッドは明らかに機能しません
シンプルで美しい SQL ステートメント
階下で誰かが
大きなフィールド構造を変更する必要があると言っているのを見ましたが、変更できない可能性があります現時点では許可されています。プロジェクト全体がオープンなため、ここを動かしてここを別の場所に呼び出すと、フィールド構造の変更により予期せぬ問題が発生する可能性があります。
id 1 2 3🎜id user_id 🎜1 ,2,32,4,🎜2 ,3,63,2,🎜3 ,4,62,7,🎜🎜 これに変更すると簡単になります🎜🎜実際には、中間テーブルに分割する方が良いです🎜🎜テーブル製品🎜
user_id 2 3 4 6 32 62 63🎜テーブルユーザー🎜
product_id user_id 1 2 1 32 1 4 2 2 2 63 2 3 3 4 3 62 3 7🎜中間テーブル🎜
id user_id 1 [2],[32],[4] 2 [3],[63],[2] 3 [4],[62],[7]🎜やはりテーブル構造を変更することをお勧めします!これは本当に簡単なことではありません。または、🎜rrreee🎜などのデータ保存方法を変更し、ファジークエリを使用します。ただし、テーブルデータを変更することをお勧めします🎜🎜mysql5.7 には json 型があります🎜