0

この (1|5|18|44|98|22) のようにフィールドに入力された数字 (それぞれ 1-2 記号) を含むテーブルを取得しました。また、フィールドには 1 つの数字のみを含めることができます (区切り記号なし| ) 検索するにはどうすればよいですか?このフィールドの特定の数字? たとえば、行を選択する必要があり、5 つしか含まれていません。または、18 と 44 だけですか?

4

2 に答える 2

1

クエリ中に、このようにフィールドの最初と最後にパイプを追加できます。

SELECT * 
FROM YOUR TABLE
WHERE INSTR( CONCAT('|', field, '|'), '|1|' ) >0

あなたの行を返します。

SELECT * 
FROM YOUR TABLE
WHERE INSTR( CONCAT('|', field, '|'), '|31|' ) >0

行が返されません。

SELECT * 
FROM YOUR TABLE
WHERE (INSTR(concat('|',field,'|'), '|18|') >0 and INSTR(concat('|',field,'|'), '|44|') >0)

18 と 44 の両方がフィールドにある場合に返されます。

于 2012-04-22T09:50:29.823 に答える
0

これを試して:

SELECT * FROM table WHERE field REGEXP '(^|\|)digit_you_want_add_here($|\|)'

于 2012-04-22T05:23:03.330 に答える