1

たとえば、テーブル productinfo のフィールド データの MY DB エントリは次のとおりです。

66523,665893,745896321

ここでSELECT、穴のエントリを与えるステートメントが必要です。

例えば:

SELECT * from productinfo WHERE products="66523"
4

4 に答える 4

2

試す:

SELECT *
FROM   productinfo
WHERE  Concat(',', products, ',') LIKE '%,66523,%'  

このfiddleでは、最初の 3 行には 66523 製品が含まれているため、返されることを確認できますが、66523 を含む製品番号を含む 4 番目の行は返されません。

しかし、複数のデータを 1 つのフィールドに格納するのは本当に悪い習慣です。外部キーを使用して、このデータを新しいテーブルに分割することをお勧めします。そうしないと、インデックスを効率的に使用する方法がなく、パフォーマンスが低下するため、同様の回避策が必要になります。

于 2013-06-21T09:51:39.783 に答える
0

このように試しましたか?

SELECT * from productinfo WHERE products like "66523,%" OR products like  "%,66523,%" OR products like  "%,66523" or products="66523";
于 2013-06-21T10:22:14.893 に答える
0

これを使って:-

SELECT * from productinfo WHERE products like "66523,%" OR  products like ",66523,%" OR  products like "%,66523"

66523, + something.OR , + 66523, + something.OR something + 66523(最後の番号)を含むものと一致します。整数が一致することを確認します。

SQL フィドルのデモ

于 2013-06-21T09:51:53.127 に答える