簡體   English   中英

如何從數據庫中選擇具有某個字符串一部分值的所有行?

[英]How do I select all rows from my database that have a value that is part of a certain string?

我有一個循環,產生一個像$sku = MAR-9-870-2-L的字符串。 我有一個數據庫,它是一個“skusearchquery”列表,通常看起來像skusearchquery = MAR-9。 我正在嘗試搜索數據庫的所有行,其中包含字符串$ sku中包含的skusearchquery。

我知道下面的代碼不起作用,因為MAR-9-870-20-L MAR-9-870因為MAR-9-870不包含更長的字符串,所以我想知道我怎么說:如果行值skusearchquery匹配字符串MAR-9-870-20-L ,則選擇它。

$search = mysqli_query($connect, "SELECT * FROM skusearch WHERE skusearchquery LIKE '%$sku%'");

請嘗試LOCATE()函數:

$search=mysqli_query($connect,"SELECT * FROM skusearch WHERE LOCATE(`skusearchquery`,'$sku'");

......如果這是積極的測試,你應該采取tadman的建議並保護你的查詢。

正如你所說,你的searchquery字段可以有較小的sku部分,然后你可以嘗試下面的查詢來獲得這些結果

$search = mysqli_query($connect, "SELECT * FROM skusearch WHERE skusearchquery LIKE '%$sku%'" or '$sku'  like  concat('%',skusearchquery,'%');

還要確保按照@tadman的建議保護您的查詢免受sql注入。

暫無
暫無

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

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