我在使用 LIKE 子句的 SELECT 查询时遇到了一些问题。我需要获取在某个字段中具有类别 ID 的所有记录。所有类别 ID 的存储方式如下:
1;2;4;11;12;22;32;
发生的事情是以下查询
SELECT * FROM
mytable
WHEREcatids
LIKE '%2;%'
将选择类别 id 为 2 的所有记录,以及类别 12、22、32 等的记录。不幸的是,用于存储类别 id 的代码不可修改,数字 2 是从变量中读取的。我尝试在它旁边使用 NOT LIKE 子句,但我不能重复 10 次以避免 12、22、32、42 等...
有谁知道告诉子句 LIKE 获取任何可以为空的 % 或 ; 但不是一个数字?因为如果在上面的示例中要获取的类别 id 为 1,则字符串将以数字 1 开头(因此左侧不会有 ;),但它也会获取 11。
谢谢