ホームページ  >  記事  >  バックエンド開発  >  1 つのフィールド内の複数の値をカンマで区切ると、データ テーブルのこのフィールド内の特定の値を含むすべての ID が取得されます。

1 つのフィールド内の複数の値をカンマで区切ると、データ テーブルのこのフィールド内の特定の値を含むすべての ID が取得されます。

不言
不言オリジナル
2018-05-24 15:40:433411ブラウズ

例:

id   user_id   
1    2,32,4
2    3,63,2
3    4,62,7

user_iduser_id中有2id,结果=》1,2(含有单独的2)

  1. like的方式显然行不通

  2. 简洁漂亮的sql语句

  3. 看到楼下的有大大说改字段结构的,目前可能不太允许这样。因为整个项目都是通的,如果我在这一个地方动了,其他地方也有调用这个地方的时候,由于字段结构改变,可能会出现不可预测的问题。

回复内容:

举栗子:

id   user_id   
1    2,32,4
2    3,63,2
3    4,62,7

取出user_id中有2id2

を含む id を取り出します。結果 =》1,2 (別個の 2 を含む)
  1. like このメソッドは明らかに機能しません
  2. 簡潔で美しい SQL ステートメント
  3. 階下で誰かがフィールド構造を変更する必要があると言っているのを見かけましたが、現時点ではそれは許可されていない可能性があります。プロジェクト全体がオープンなため、ここを動かしてここを別の場所に呼び出すと、フィールド構造の変更により予期せぬ問題が発生する可能性があります。

  4. 返信内容:

例:

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 型があります🎜
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。