我有一个表格,其中的列包含如下所示的数字。
287:406:852,248:963:147
我想通过在cakephp中使用find方法搜索287
但不是2870
的记录。
我该怎么做?
答案 0 :(得分:0)
MySQL有一个函数FIND_IN_SET,它以一组逗号分隔的搜索字符串字符串返回位置。
调整搜索列。 (假设您的列名为 foo )
使用REPLACE命令
用逗号替换冒号 REPLACE(foo,':',',')
SQL WHERE
代码看起来像(假设$ bar是您要查找的整数):
WHERE 0 < FIND_IN_SET($bar, REPLACE(foo,':',','))
将Cakephp 放在一起(我相信这段代码会清理你的$ bar变量):
$conditions = array('0 < FIND_IN_SET(?, REPLACE(foo,':',',')' => array($bar));