在menzhi007的blog裡看到非常有意思的東西:
在mysql手冊裡:
mysql按照以下規則進行數值比較:
在預設狀態下,字串比較不區分大小寫,並使用現有字符集(預設為cp1252 latin1,同時對英語也適合)。
為了進行比較,可使用cast()函式將某個值轉為另外一種型別。 使用convert()將字串值轉為不同的字符集。請參見12.8節,「cast函式和操作符」。
以下例子說明了比較運算中將字串轉為數字的過程:
mysql>select 1 > '6x';
-> 0
mysql>select 7 > '6x';
-> 1
mysql>select 0 > 'x6';
-> 0
mysql>select 0 = 'x6';
-> 1
這個如果不注意好確實可以導致安全問題的,比如menzhi007裡舉的那個列子,如果字元變數查詢沒有引號,但是用某些函式過濾了不可以直接注射,那麼可以直接提交0就可以繞過了...
最後感謝menzhi007及hi群的各大牛的討論,尤其是ryat牛的指點:)
mysql運算子,比較運算子
我也是菜鳥,也是新手,一起學習,一起進步,加油 首先 比較運算子,進行比較之後的 結果如果為真 返回1,結果為假 返回 0 一下為常用的,最基礎的一些沒有列出來 或 不等於 null 的安全等於 null safe between 存在於指定範圍 in存在於指定集合 is null 為 null i...
mysql 運算子 比較運算 邏輯運算 位運算
目錄 算術運算子 比較運算子 邏輯運算子 位運算子 運算子優先順序 參考菜鳥教程 mysql 支援的算術運算子包括 運算子作用 加法 減法 乘法 或 div 除法 或 mod 取餘select 語句中的條件語句經常要使用比較運算子。通過這些比較運算子,可以判斷表中的哪些記錄是符合條件的。比較結果為真...
mysql 條件運算子(比較運算子) 列的運算
運算子包括 大於號 大於等於 等於號 小於號 小於等於 不等於 select from student where age 50 and age 70 返回乙個值的子查詢 當子查詢的返回值只有乙個時,可以使用比較運算子如 等將富查詢和子查詢連線起來。例項如下 簡單子查詢 select name,ag...