1

例として、これを列のフィールドとして使用します。

3,21,23,41,47,56,57,61,64,74,78,79,82,83,86,90,94

これらはIDであり、たとえば、試した複数の番号を検索する方法を見つけようとしています。

SELECT * FROM table WHERE status='A' AND (FIND_IN_SET('3,64', myids))

これは、3と64が一緒になっていて、各値のfind_in_setを出力するのが少し面倒な場合にのみ機能するようです。

より良い解決策や提案はありますか?

4

5 に答える 5

2

これを試して

SELECT * FROM table WHERE myids REGEXP REPLACE("3,64", ',', '(\\,|$)|');
于 2016-10-04T09:44:12.250 に答える
2

FIND_IN_SET()最初の引数の位置のみを検索します ( MySQL リファレンス、文字列関数を参照)。

FIND_IN_SET探している ID ごとに 1 つを使用できます。

SELECT * FROM table WHERE status='A' AND
  FIND_IN_SET('3', myids) AND FIND_IN_SET('64', myids)
于 2012-06-02T09:27:05.413 に答える
1
SELECT * FROM table WHERE status='A' AND myids in (3, 64)

これを試すことができます。

于 2012-07-14T14:25:14.197 に答える
-2
foreach($ids as $id)
{
  SELECT * FROM table WHERE status='A' AND (FIND_IN_SET($id, myids))
}

that check one by one and getting the result from table.
于 2014-08-23T07:56:49.867 に答える