2010-12-20 53 views
0

我正在查找一個mysql查詢,它將返回所有行,
其中一個特定字段由給定字符串中的字符組成。MySQL查詢:返回行字段由給定的PHP字符串中的字符組成

例如我是這個字符串:$input = 'abcdef';
現在,我正在尋找mysql來產生所有這些行,例如, 'name'由來自$input的字母組成。

我希望我已經清楚地表達自己.. :)

編輯:另外,你建議的查詢時,它纔會真正提高性能,如果我們只是在尋找AZ,而不是一些模式由字母串尤其是,當我們每2秒鐘請求數據。
事情是,現在,我的要求是隻在數字,字母或字母數字格式中搜索..我將在以後使用獨佔模式。

問候
尼基爾古普塔

+0

您使用的是PHP之類的編程語言嗎? $的輸入來自哪裏? – 2010-12-20 06:10:14

+0

是的...我使用PHP。輸入將來自用戶,以GET或一些預定義模式的形式出現。在傳遞給查詢之前,我可以控制'$ input'。 – Stoic 2010-12-20 06:12:17

回答

1
$query = "SELECT * FROM table WHERE `name` REGEXP '[" . mysql_real_escape_string($input) . "]'"; 

但這種查詢是非常奇怪的,將是非常緩慢的(取決於你多少行)。

+1

所以這個工作:'SELECT COUNT(*)FROM table WHERE name REGEXP'[a-z] *''??選擇所有名稱值是字符串。 – Stoic 2010-12-20 06:15:32

+0

@Stoic:是的,我認爲是這樣 – zerkms 2010-12-20 06:16:19

1
SELECT `name` FROM `table` WHERE `name` REGEXP '^[abcdef]*$' 

參見MySQL: Regular expressions

+1

'REGEX'^ abcdef $''---這是什麼意思? – zerkms 2010-12-20 06:15:04

+0

我改正了它現在'^ [abcdef] * $': ^匹配字符串的開始, [abcdef]匹配來自a,b,c,d,e,f的任何字符* *模式零次或多次, $匹配字符串的末尾。 – Oswald 2010-12-20 06:17:55

+0

哦,我想你是指我錯誤地拼寫了REGEXP。修正了這一點。 – Oswald 2010-12-20 06:20:25

相關問題