php - sql LIKE 有一定的限制

标签 php mysql

我在 varchar 字段中有一个逗号分隔值作为字符串。我正在尝试执行基于 like 的 sume,但得到了不期望的结果。

从 myTable WHERE GroupId = 12 中选择 SUM(PostLiked LIKE '%1%') as PostLikedSum

PostLiked      |     GroupId 
_____________________________
1,13,47,87,1   |        12

12,3           |        12

我的查询返回 sum 为 2,因为它匹配 12。有没有办法限制它,使其与字段内的值 1 匹配?

最佳答案

您可以使用CONCAT代替OR's:

SELECT COUNT(CASE WHEN CONCAT(',',t.PostLiked,',') LIKE '%,1,%' THEN 1 end) as PostLiked
FROM myTable t
WHERE t.GroupId = 12

这样 PostLiked 的字符串将被构造为:

,1,13,47,87,1,
,12,3,

那么你就不会遇到这个问题了。

关于php - sql LIKE 有一定的限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37047090/

相关文章:

php - 如何使用 php-curl 发布存储在本地的二进制文件?

php - 从另一个驱动器上的文档根连接到 XAMPP MySQL 数据库

java - 将 BreakAfterAcquireFailure 设置为 true 时,DataSource 的连接没有重新连接

zend 格式的 mysql 查询

php - AspectMock 似乎没有模拟静态方法

php - php中的随机图像

PHP 和 MySQL 搜索大量列

mysql - 数据库分层如何工作?

php - 按 30 天内销量排序产品,然后是没有销量的产品

php - 在 php 中执行多个操作