-1
這是一個已知的問題?MYSQL INET_ATON。我發現了一個錯誤還是已知?
select * from 'tablename' where INET_ATON('any valid ip');
顯示整個分貝。我不小心忘了添加ipaddress = INET_ATON('ip');
,並且讓整個分貝變成了垃圾。
這是一個已知的問題?MYSQL INET_ATON。我發現了一個錯誤還是已知?
select * from 'tablename' where INET_ATON('any valid ip');
顯示整個分貝。我不小心忘了添加ipaddress = INET_ATON('ip');
,並且讓整個分貝變成了垃圾。
您查詢什麼是基本上等同於:
select * from 'tablename'
where 1
的WHERE
條款始終是真實的,所以所有的錶行返回。
我沒有看到任何返回的所有行錯誤。如果IP有效,INET_ATON將返回數字> 0;如果IP無效,則返回NULL。這意味着,這就像發行查詢
SELECT * FROM `tablename` WHERE 1
(或任何其他正數)將返回所有行。
你以後用不同的查詢「改變了整個數據庫」,對嗎?或者,如果這是一個子查詢的一部分,最終選擇一切? –
'WHERE INET_ATON('任何有效的ip')'。 MySQL會嘗試將其轉換爲布爾值。因爲它大於'0',就好像你做了'WHERE TRUE'或者'WHERE 1'。這就是它選擇所有行的原因。這個查詢本身不會更新任何內容。你運行了一個'UPDATE'查詢嗎? –
update'tablename'set field1 ='0',field2 ='0',field3 ='0'其中INET_ATON('any ip'); – user2561395