gpt4 book ai didi

php - MySQL 使用 LIKE 或 REGEX 匹配数字列表

转载 作者:行者123 更新时间:2023-11-29 13:11:47 25 4
gpt4 key购买 nike

我不太清楚在 MySQL 数据库中搜索匹配数字的最佳方法。

目前我的查询结果为:

SELECT count(*) AS total FROM `videos_test` WHERE `channels` LIKE '%$cid%';

$cid 可以是任何整数,channels 的格式为“chan1,chan2,chan3,...”,可设置任意数量(甚至 0)的 channel 。一些有效的字符串是:

1,12,5
5

8,1,2

问题是,当 $cid=2 时,我会返回包含任意 2 的行,即使是作为更大数字(12,32,25,...)的一部分。看起来我可以使用 REGEX 或 MATCH/AGAINST 来完成此操作,但我对语法感到非常困惑。有人能指出我正确的方向吗?

最佳答案

使用like,您可以将其修复为:

SELECT count(*) AS total
FROM `videos_test`
WHERE concat(',', channels, ',') LIKE '%,$cid,%';

在 MySQL 中执行此操作的另一种方法是:

SELECT count(*) AS total
FROM `videos_test`
WHERE find_in_set($cid, channels) > 0;

正如评论中提到的,您似乎将事物列表存储在列中。这是一个坏主意。您应该创建一个关联/连接表,每个视频和 channel 组合一行。

关于php - MySQL 使用 LIKE 或 REGEX 匹配数字列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22000583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com