簡體   English   中英

MySQL:選擇列包含列表元素的行

[英]MySQL: Select row where column contains element from list

我試圖從列中包含列表元素的表中選擇所有行:類似於

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

這基本上是非法的角色檢查。

有人可以幫忙嗎?

謝謝

對於MySQL,您可以使用REGEXPRLIKE來檢查特定列以進行模式匹配。 在您的情況下,以下示例可能有效:

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

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

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

如果我理解正確,你想要所有具有非字母數字字符的行,即數字和字母以外的行

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

^ inside [ ] charcter類意味着否定,而在正則表達式的開頭外部指定列值的開始。 $ implementation結束字符串值

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM