mysql_query()不能正常解析sql

來源:互聯網
上載者:User
一個sql語句,直接放到mysql裡運行是正常的
但用php的mysql_query運行該sql後結果卻不同,會是mysql_query不能解析的原因嗎?




sql如下:



INSERT INTO analysis.caomei_of_list_pvuv  (region,isp,uv,pv,date)  SELECTtb2.region,tb2.isp,tb2.uv,tb2.pv,'2014-05-14' AS date   FROM   (SELECT tb.region,tb.isp, COUNT(tb.mac) AS uv,SUM(tb.mac_num) AS pv  FROM caomei_20140515.caomei_1 AS tb WHERE tb.date = '2014-05-14'  GROUP BY tb.region, tb.isp ) AS tb2  LEFT JOIN (SELECT tb6.region,tb6.isp,tb6.uv,tb6.pv FROM analysis.caomei_of_list_pvuv AS tb6 WHERE tb6.date='2014-05-14'   ) AS tb1 ON tb2.region = tb1.region WHERE tb1.region IS NULL  AND tb2.region IS NOT NULL ;


回複討論(解決方案)

NSERT INTO analysis.caomei_of_list_pvuv
(region,isp,uv,pv,date)
SELECT
tb2.region,tb2.isp,tb2.uv,tb2.pv,'2014-05-14' AS date
FROM
(
SELECT
tb.region,tb.isp, COUNT(tb.mac) AS uv,
SUM(tb.mac_num) AS pv
FROM
caomei_20140515.caomei_1 AS tb
WHERE
tb.date = '2014-05-14'
GROUP BY tb.region, tb.isp
) AS tb2
LEFT JOIN
(
SELECT
tb6.region,tb6.isp,tb6.uv,tb6.pv
FROM
analysis.caomei_of_list_pvuv AS tb6
WHERE
tb6.date='2014-05-14'
) AS tb1

ON tb2.region = tb1.region
WHERE
tb1.region IS NULL
AND tb2.region IS NOT NULL

這是不允許的

NSERT INTO analysis.caomei_of_list_pvuv
(region,isp,uv,pv,date)
SELECT
tb2.region,tb2.isp,tb2.uv,tb2.pv,'2014-05-14' AS date
FROM
(
SELECT
tb.region,tb.isp, COUNT(tb.mac) AS uv,
SUM(tb.mac_num) AS pv
FROM
caomei_20140515.caomei_1 AS tb
WHERE
tb.date = '2014-05-14'
GROUP BY tb.region, tb.isp
) AS tb2
LEFT JOIN
(
SELECT
tb6.region,tb6.isp,tb6.uv,tb6.pv
FROM
analysis.caomei_of_list_pvuv AS tb6
WHERE
tb6.date='2014-05-14'
) AS tb1

ON tb2.region = tb1.region
WHERE
tb1.region IS NULL
AND tb2.region IS NOT NULL

這是不允許的



但是mysql是能正常執行得到結果。
php也能執行,只是結果出現位移了!!

問題不在於是否有文法錯
而在於控制邏輯是迴圈悖論

但我覺得這樣應該沒有邏輯問題啊,先查出結果。然後將結果寫入自己。
最主要是 php啟動並執行結果和mysql啟動並執行結果不同!!

是要盡量避免這種邏輯嗎,否則就會出現這種意想不到的結果啊

INSERT INTO a (version)SELECT version FROM a WHERE id=1;

假定第一次執行插入了 1 條
那麼第二次執行就會插入 2 條
第三次執行就會插入 4 條

我知道了。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.