2
今天我在一個搜索查詢中發現問題,找不到簡單的解決方案。mySQL:不想在搜索查詢中轉換爲整數
我們查詢:
SELECT
invoice_id, firstname, lastname
FROM
table
WHERE
email = '[email protected]' OR
firstname = '[email protected]' OR
lastname = '[email protected]' OR
invoice_id = '[email protected]'
這裏的問題是,我們通過invoice_id
搜索 - INT(10)UNSIGNED。
Mysql的自動轉換[email protected]整數:24個顯示結果與INVOICE_ID行= 24
,我發現的唯一的解決辦法是檢查的數量或在此之前發送到SQL查詢,如果是不是要執行另一個不包含invoice_id的查詢。
這是例子查詢,真正的查詢已經3本INVOICE_ID JOIN的
它很驚訝地看到結果:當執行這個查詢第一次:
SELECT invoice_id FROM table WHERE invoice_id = '[email protected]'
我沒以前不知道這個演員,因爲通常不會搜索整數列中的蜇傷,然後我在谷歌中讀到這個。
我不知道。我的第一個想法是投入'invoice_id',所以'WHERE CAST(invoice_id as VARCHAR)='24aaa @ aaa.aa''。但即使這種方式有效,對於使用索引進行查詢的性能可能也不好。但你可以測試它。也許這是一個解決方案。 – GolezTrol 2014-09-22 12:33:20