MySQL:选择列包含列表元素的行

时间:2013-04-16 09:22:18

标签: php mysql sql

我正在尝试从列中包含列表元素的表中选择所有行: 像

这样的东西
Select * from `table` where `column` (contains anything from {£,$,%,^,&,...,/})

这基本上是非法的角色检查。

有人可以帮忙吗?

由于

4 个答案:

答案 0 :(得分:9)

对于MySQL,您可以使用REGEXPRLIKE来检查特定列以进行模式匹配。在您的情况下,以下示例可能有效:

SELECT * FROM `table` WHERE `column` REGEXP '[\£\$\%\^\&]';

答案 1 :(得分:0)

您可以使用LIKE进行模式匹配,

SELECT  *
FROM    `table`
WHERE   `column` LIKE '%£%' OR
        `column` LIKE '%$%' OR
        `column` LIKE '%\%%' OR
        `column` LIKE '%&%'

答案 2 :(得分:0)

如果我理解正确,你想要所有包含非字母数字字符的行,即除了数字和字母之外

SELECT * FROM `table` WHERE `column` REGEXP '^[^a-zA-Z0-9]+$'

^内部[ ] charcter类意味着否定,而正则表达式开头的外部指定列值的开始。 $实现字符串值

的结束

答案 3 :(得分:0)

SELECT * FROM table WHERE column LIKE '%\%%' OR column LIKE '%$%' OR column LIKE '%&%';

...等。 '%char%'表示某处存在char,'%char'表示char位于字符串的末尾,'char%'表示它位于开头。 '%\ %%'表示搜索的char(%)是mysql使用的特殊字符,'\'是必需的。