我學習的Mysql差或之間,並與其中的mysql
但我覺得下面的例子後困惑:
select * from `users` where username = 'admin' or true;
在這裏,它返回的用戶表中的所有行!
(username ='admin'或true)應該是真的嗎?那麼,真正的
,但在這個例子中:
select * from `users` where username = 'admin' and true;
它返回一個行(其中username = '管理員')
但(用戶名= '管理' 和真正的)應該是真實的呢!
那有什麼區別?
對每行測試條件。所以如果你沒有所有名爲「admin」的用戶,你只會得到一行返回...... –
用'true'代替'1',它應該更有意義。 –
你是這個例子的意思?從用戶名中選擇*,其中username ='admin'和1; 它會先檢查它將檢查usename ='admin'的位置?因爲AND? – Vendetta