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 回答