0

データベースに「1,2,3,4,5」のような文字列値を持つ列があります。その文字列で以前に定義した整数値を比較して見つけたいと思います。しかし、この文字列には配列の目的が必要です。ここまでは問題ありません。そのような配列で整数を見つけています:

$sql='SELECT * FROM '. TOPIC_TABLE .' WHERE multi_dept LIKE \'%'.$prjId.',%\' ORDER BY topic';

ただし、文字列に id 11 のトピックがある場合、エラーが発生します。

{1,2,11,}-> 文字列で ID=1 を検索すると、1 と 11 も見つかります。SQL クエリでこの問題を回避して解決する方法はありますか?

4

2 に答える 2

3

すべての整数の後にあるので、これは以下の句,を使用するのと同じくらい簡単ではありませんか?WHERE

WHERE multi_dept LIKE '$prjId,%' XOR multi_dept LIKE '%,$prjId,%'
于 2012-05-15T07:48:01.127 に答える
0

救助にFIND_IN_SET

 $sql='SELECT * FROM '
     . TOPIC_TABLE
     . ' WHERE FIND_IN_SET( '
     . $prjId
     . ', multi_dept ) ORDER BY topic'
于 2012-05-15T07:52:12.177 に答える