1

レコードのフィールドでキーを検索するのに問題があります。

  • disProdlist = 含まれる 1 つ以上のキー、exp (1、2、3、9、など)。

「disProdlist」フィールドにキー「9」を含むレコードを表示するのが好きです。

これが私のクエリです:

SELECT disProdName FROM discount WHERE FIND_IN_SET('9','disProdlist');

しかし、それは結果を返しません。

それで、実験を試みます。「disProdlist」を変更してキーを1つだけにすると、結果が正常に返されました。しかし、「disProdlist」には複数のキーが含まれている必要があります。

だから、誰でも私の問題を解決するのを手伝ってくれる?

4

2 に答える 2

1

disProdList がフィールドの名前である場合、クエリで一重引用符で囲んではなりません。

SELECT disProdName FROM discount WHERE FIND_IN_SET('9','disProdlist');

この要求は正しくありません。2 番目の引数は、文字列リスト ( docに記載されているように、「,」文字で区切られた部分文字列で構成される文字列) でなければなりません。

正しいクエリは次のとおりです。

SELECT disProdName FROM discount WHERE FIND_IN_SET('9',disProdlist);

disProdlist が正しい形式の文字列 (VARCHAR、TEXT、...) であるか、SET型である場合

于 2013-04-29T10:20:02.327 に答える