簡體   English   中英

2個表SQL查詢的怪異結果

[英]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 stuffLIKE 'Tofu'則不匹配-僅匹配Tofu

你是什​​么意思

(另外,我同意提到您應該檢查一下括號的那個人)

暫無
暫無

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

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