假設我們在id = 1的'訂單'表中有記錄。此查詢:MySQL:使用字符串參數搜索數字列
SELECT * FROM 'orders' WHERE id = 'abc1'
將不會返回上述記錄。但是這個查詢:
SELECT * FROM 'orders' WHERE id = '1abc'
將返回id = 1的記錄。這是因爲當MySQL將字符串轉換爲數字'abc1'變爲0,但'1abc'變爲1.有沒有一種很好的方法來使MySQL嚴格搜索帶有查詢id的記錄,即不會返回id = 1的記錄上述情況?
你可以讓'id'作爲'varchar'但那麼它不會成爲一個ID的實際目的.. – auicsc 2013-04-22 17:59:32
'abc1'或'1abc'來自哪裏,爲什麼不驗證和消毒搜索參數?查詢如'SELECT * FROM'命令'WHERE id ='123IReallyDoNotCareIfThisIsARealNumberOrNot''的用途是什麼目的? – 2013-04-22 18:17:26