如果我有一个列存储一个字符串,它是不同日期的串联,比如说“星期一,星期三,星期六,星期天”,那么sql中是否有一个命令,只搜索“星期三,星期天”就返回该字符串?按照下面的命令:
SELECT * FROM `information` WHERE Days = "Wednesday, Sunday"
mcdcgff01#
如果天数列表是字符串
SELECT * FROM `information` WHERE Days LIKE '%Wednesday%' AND Days LIKE '%Sunday%'
编辑已更改 OR 至 AND 获取包含两个日期的行
OR
AND
vddsk6oq2#
假设搜索字符串的顺序正确,将源查询转换为like查询:
SELECT * FROM information WHERE Days LIKE CONCAT('%', REPLACE(REPLACE('Wednesday, Saturday', ', ', '%'), ',', '%')), '%')
表达式转换为
Wednesday, Saturday
到
%Wednesday%Saturday%
nxowjjhe3#
您可以使用正则表达式。所有常用的db引擎都支持它。mysql中有 RLIKE 运算符,所以您的查询类似于:
RLIKE
SELECT * FROM `information` WHERE Days RLIKE '(Wednesday|Sunday)+.*(Wednesday|Sunday)+';
gwbalxhn4#
你可以用like命令
SELECT * FROM `information` WHERE Days LIKE "%Wednesday% AND Days LIKE '%Sunday%";
4条答案
按热度按时间mcdcgff01#
如果天数列表是字符串
编辑已更改
OR
至AND
获取包含两个日期的行vddsk6oq2#
假设搜索字符串的顺序正确,将源查询转换为like查询:
表达式转换为
到
nxowjjhe3#
您可以使用正则表达式。所有常用的db引擎都支持它。
mysql中有
RLIKE
运算符,所以您的查询类似于:gwbalxhn4#
你可以用like命令