[英]2 table SQL Query weird results
好的,這真讓我發瘋,我需要編寫一個SQL查詢,該查詢將從2個表中獲取產品信息。 第一個表“產品”包含productId,productname,permanentperunit和unitprice。 現在,我可以分別按產品名稱和類別名稱進行搜索,但是當我嘗試將兩者結合使用時,會得到瘋狂的結果,這是查詢:
"SELECT DISTINCT productId, productname, quantityperunit, unitprice FROM products pr,
categories ca WHERE pr.categoryID = ca.categoryID AND ProductName LIKE '%" + searchTerm + "%'
OR CategoryName LIKE '%" + searchTerm + "%'
請原諒其中的Java樣式,這里的格式更好:
SELECT DISTINCT productId, productname, quantityperunit, unitprice FROM products pr,
categories ca WHERE pr.categoryID = ca.categoryID AND ProductName LIKE '%Tofu%'
OR CategoryName LIKE '%Tofu%'
任何幫助,將不勝感激。
我無法確定您所說的“瘋狂刷新”是什么意思,但我想您得到的行比您預期的要多。 添加括號:
WHERE pr.categoryID = ca.categoryID AND (ProductName LIKE '%Tofu%'
OR CategoryName LIKE '%Tofu%')
您的兩個示例查詢中的LIKE
不同。
LIKE '%Tofu%'
與LIKE 'Tofu'
非常不同。
%
行為就像通配符,因此LIKE '%Tofu%'
匹配Big chunk o' Tofu and stuff
但LIKE 'Tofu'
則不匹配-僅匹配Tofu
。
你是什么意思
(另外,我同意提到您應該檢查一下括號的那個人)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.