我正在此查詢地理IP數據庫查詢問題
SELECT
country,
countries.code,
countries.lat,
countries.lng,
countries.zoom,
worldip.start,
worldip.end
FROM countries, worldip
WHERE countries.code = worldip.code
AND
'91.113.120.5' BETWEEN worldip.start AND worldip.end
ORDER BY worldip.start DESC
與這些字段的表,
worldip countries
-------------- ----------------
start code
end country
code lat
country_name lng
zoom
有時我得到兩個結果在兩個不同的國家對一個IP 。我明白了爲什麼
'91.113.120.5' BETWEEN worldip.start AND worldip.end
將返回兩種不同的結果,因爲10是10和11,而且5和12。我本來以爲包括WHERE countries.code = worldip.code
之間就可以防止這一點,或至少保證我得到了正確的國家沒有重要的是它返回了多少結果。但事實並非如此。
我也加了ORDER BY worldip.start DESC
這似乎工作,因爲更準確的IP地址,它出現在列表的上方。你可以看到它工作(或不)here。但是,這是一個快速解決方案,我想正確地做。
SQL對我來說是一個真正的弱點。任何人都可以解釋我做錯了什麼?
感謝您的回答和反饋。我正在審查所有事情,並拿出我欺騙的所有骯髒的小捷徑(href =「#」!!我知道更好)。唉,獲得航班的價格目前是遙不可及的。這個信息花了很多錢,我不得不爲每個查詢付費。這些費用是敲詐勒索。但如果有人想投資,那麼我全都是耳朵。但有更多的東西來免費,連接航班,酒店,特別優惠等。 – gargantuan
我想這是飛行代理賺錢的地方,但你不能通過腳本提交他們的價格從處女,飛行星或老虎(我在澳大利亞)查詢表單和清理HTML? – whatnick
是的,這是我一直在玩弄的一個想法,但有2000個航空公司可以參加,這是很多的編碼。儘管我可能只需要開始它,除非你想要採取行動? – gargantuan