0

この問題に遭遇したとき、私はphpで単純なmysqlテーブルを操作していましたが、これに対する解決策があるかどうか疑問に思っています。

テーブルには、ユーザー名とその場所がコンマ区切り形式で保持されます。

 id|user|locations
------------------
 1 |abc | A, B, C
------------------
 2 |xyz | P, Q, R

mysqlクエリを記述して、場所がAのユーザーを返すようにする方法があるかどうか疑問に思いました。基本的に、コンマで区切られた値のいずれかの値が一致する場合は、レコードを返す必要があります。

それらを別々のレコードとして保存する方が良い方法であることは知っていますが、そのような検索が可能かどうかだけ興味がありました。前もって感謝します。

4

2 に答える 2

2

理想的には、コンマ区切りのリストを保存しないように、データの正規化を検討する必要があります。

ただし、テーブル構造を変更できない場合、MySQLには、FIND_IN_SET()必要な値に一致する行を返すために使用できる関数があります。

select id, user, locations
from yourtable
where find_in_set('A', locations)

SQL FiddlewithDemoを参照してください

于 2013-03-24T16:37:28.133 に答える
1

我々が考えます

次のクエリが役立つ場合があります-

SELECT * FROM tableWHERE columnREGEXP'(^ |、)A($ |、)'

あなたはで役に立つリンクを持つことができます-

テーブルのカンマ区切りフィールドをクエリして、数値がフィールド内にあるかどうかを確認する方法

于 2013-03-24T16:41:41.067 に答える