2017-02-09 74 views
-3

Probilem獲得搜索結果在這個代碼。但在表中的每個數據顯示,高達我想從SQL表

select * from book 
WHERE bookid LIKE '%% OR title LIKE '%%' OR author LIKE '%%' OR publisher OR '%%'; 
+8

你知道'LIKE'是如何工作的嗎? – Lamak

+0

'OR OR OR'我懷疑這甚至編譯。無論如何,對於LIKE來說,你必須在%通配符之間放置一些文本。否則,是的,它會返回一切。我建議你閱讀文檔,並且/或者在問題中明確你想達到的目標。 – ADyson

+0

語法錯誤和其他問題。 (首先LIKE沒有結束報價。) – jarlh

回答

2

擴大對什麼機會芬利上面說的,但解釋,使用像在SQL這是一個鏈接解釋http://www.w3schools.com/sql/sql_like.asp

SELECT bookid, title, author, publisher 
FROM book 
WHERE author = 'Thisara Bandara' OR publisher = 'Random Name' 
OR author LIKE '%hat%' 

在「%」符號是用來定義之前和一個模式之後的通配符(失蹤字母)

LIKE '%hat%' 

這可能會返回類似「聊天」

LIKE '%hat' 

這可能會返回類似「聊天」

LIKE 'hat%' 

否則,可能會返回類似帽子

同時,記語法,這是不正確的得到你想要的結果。你需要做類似下面的

select * from book 
WHERE bookid LIKE '%something%' OR title LIKE '%soemthing%' OR author LIKE '%something%' OR publisher OR '%something%'; 

它返回的原因一切都是因爲在「%%」,基本上意味着它可以是任何東西,因爲沒有什麼可以過濾它通過

之間沒有任何東西
0

你似乎有你的欄目周圍混合。使用SELECT來定義您想要查看的字段以及FROM來自哪個表來自哪個表。

SELECT bookid, title, author, publisher 
FROM book 

使用WHERE語句指定如下所示的條件。從我所看到的是你寫的,你不需要標準

WHERE author = 'Thisara Bandara'