簡體   English   中英

MySQL選擇數據分隔的字符串

[英]MySQL Select data separated strings

我正在嘗試使用LIKE函數選擇記錄。 但是,如果中間有字符,則不會顯示結果。 我希望它選擇包含這些字符串的數據。 例如:

 $value = "Mark Anthony";
 $qry ="SELECT * FROM students WHERE name LIKE '%$value%'";

返回這些結果:

 John Mark Anthony
 Mark Anthony Philipps

但我也希望得到這樣的結果

 Mark James Anthony
 Mark Gabriel Anthony Fernandez
 Marko Julian Anthonyo

有任何想法嗎? 更新:'馬克'必須在'安東尼'之前

我認為Full TEXT有效

但僅MyISAM表支持全文搜索

SELECT * FROM students 
  WHERE MATCH (name)
   AGAINST ('Mark Anthony' IN BOOLEAN MODE)

更新: -根據問題更新OP也需要搜索Marko ,那么你可以這樣: -

SELECT * FROM students 
WHERE
(
    name LIKE '%Mark%'
    OR name LIKE '%Anthony%'
)

您可以將值字符串拆分為兩部分。 像這樣:

WHERE name LIKE '%Mark%' AND name LIKE '%Anthony%'

最后一次嘗試

$value = "Mark Anthony";
$value = str_replace(" ","%",$value);
$qry ="SELECT * FROM students WHERE name LIKE '%$value%'";

未經測試!

嘗試此解決方案 -

SELECT * FROM table WHERE column REGEXP '(Mark).+(Anthony)';

問題是,你說“帶來包含馬克安東尼的所有結果”,所以它確實如此。 你應該設置它

$value = "Mark%Anthony";

暫無
暫無

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

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