[英]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.