如何对格式为 JSON 的多个 ID 进行选择?
$query = 'SELECT * FROM articles as a WHERE "10" IN (a.catids)';
The value of a.catids in the db-field is {"0":"10","1":"12"};
就像是:
$query = 'SELECT * FROM articles as a WHERE a.catids like '%:"10",%';
我包括了 : 和 ,所以你确定你选择的是值而不是索引
没有“正确”的方式来做到这一点。MySQL 不知道 JSON 是什么,即使您对 ID 进行文本搜索,您也会注意到它非常慢。
我建议规范化表格。更新您的脚本以简单地将其catids
放在单独的表中。
我猜你正在寻找 LIKE。
SELECT * FROM articles as a WHERE a.catids LIKE '%10%'
您还想查找 LIKE 的语法(因为您可以搜索 `%"_":"10"%' 并且只搜索第二部分甚至更复杂的内容。
不过,最好不要以这种方式存储您的 ID。