在SQL数据库中按顺序搜索文本

时间:2018-01-19 22:50:05

标签: mysql sql database

如果我有一个存储字符串的列,该字符串是不同日期的串联,例如"星期一,星期三,星期六,星期日和#34;,SQL中是否有一个命令,它将仅返回该字符串搜索"周三,周日"?

以下命令的内容:

onReduxFormFieldChange  = (e, newValue, previousValue) => {
    if (newValue) {
        this.props.submit(MYFORM);
    }
}

4 个答案:

答案 0 :(得分:1)

如果天数列表是一个字符串

SELECT * FROM `information` WHERE Days LIKE '%Wednesday%' AND Days LIKE '%Sunday%'

修改 已将OR更改为AND以获取具有两个日期的行

答案 1 :(得分:1)

您可以使用正则表达式。它支持所有常用的数据库引擎。

在MySql中有RLIKE运算符,因此您的查询类似于:

 SELECT * FROM `information` WHERE Days RLIKE '(Wednesday|Sunday)+.*(Wednesday|Sunday)+';

答案 2 :(得分:0)

将您的源查询转换为类似的查询,假设搜索字符串的顺序正确:

Options +FollowSymLinks -MultiViews

RewriteEngine On

# Remove .php file extension with an external redirect
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^(.*)\.php$ https://www.example.com/$1 [R=302,L]

# Append the .php extension with an internal rewrite
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^.])+$ $1.php [L]

表达式转换

SELECT *
FROM information
WHERE Days LIKE CONCAT('%', REPLACE(REPLACE('Wednesday, Saturday', ', ', '%'), ',', '%')), '%')

Wednesday, Saturday

答案 3 :(得分:-1)

您可以使用LIKE命令

SELECT * FROM `information` WHERE Days LIKE "%Wednesday% AND Days LIKE '%Sunday%";