使用PHP MySQL,我在數據庫中存儲了一個用戶的IP以及他們輸入的我的站點。該行看起來像:Mysql限制選擇不共用列的行
ip entrypoint
xxx.xxx.xxx.1 /index.php?source=google
xxx.xxx.xxx.5 /other.php?source=bing
xxx.xxx.xxx.5 /other.php?source=yahoo
xxx.xxx.xxx.4 /more.php
我試圖做一個查詢,從用戶從這樣來到這裏的表單和搜索我開始與這最多需要300個IP的(縮短爲僅顯示4):
SELECT entrypoint,ip from TABLE WHERE ip IN('xxx.xxx.xxx.1','xxx.xxx.xxx.5','xxx.xxx.xxx.5','xxx.xxx.xxx.4') AND entrypoint LIKE '%source=%';
這讓我像一個結果:
ip entrypoint
xxx.xxx.xxx.1 /index.php?source=google
xxx.xxx.xxx.5 /other.php?source=bing
xxx.xxx.xxx.5 /other.php?source=yahoo
一些IP地址有因爲代理1000多個條目,機器人等等,所以我不能用自己的信息。如果給定IP有多個包含「source =」的「入口點」,我想忽略該行。它也使搜索大量的IP變得困難,因爲如果我正在搜索其中一個IP並返回與它相關的所有行,我將在PHP中耗盡內存。
而不是讓PHP做分揀共享IP的結果的工作,有沒有一種方法來編寫查詢,以便它不會返回任何「ip」,如果有多個值「入口點」?這是我想要它回來:
xxx.xxx.xxx.1 /index.php?source=google
如果我用這些4 IP上面那些4行上運行它。由於xxx.xxx.xxx.5有兩個不同的入口點,我想忽略這些行。
您不能找到一個現有的工具來做到這一點的數量,和?我不會重新發明輪子。谷歌分析? – Halfstop 2015-02-24 20:29:09
用當前結果和預期結果表來說明你的問題? – Alex 2015-02-24 20:31:11
Halfstop,我確實使用谷歌分析,這是針對邊緣情況。如果有幫助,你可以假裝我問的是狗的生日,而不是IP和他們的URL。 – 2015-02-24 20:43:32