簡體   English   中英

MySql Update查詢有效,但不適用於php

[英]MySql Update query works, but not in php

當我將其放入Workbench中時,下面的UPDATE Query可以正常工作,但是當我嘗試通過php運行它時,它什么也沒做? 有任何想法嗎?

我已經嘗試了TURNOVERSCORE的表結構,如varchar(100)和Float,table1.item和t2.item是主鍵。

使用mysql_error時提供錯誤:

您的SQL語法有誤; 檢查與您的MySQL服務器版本對應的手冊以獲取正確的語法,以在第2行的'UPDATE table1 JOIN(SELECT count(*)as cnt,ITEM FROM table2 WHERE')附近使用

$con = mysql_connect("localhost","username","pw");
$turnoverquery = "UPDATE table1 
JOIN (SELECT count(*) as cnt, item FROM table2 WHERE table2.TRANS_DATE BETWEEN DATE_SUB(CURDATE(), INTERVAL 365 DAY) AND CURDATE() GROUP BY item) t2 
ON table1.item = t2.item

SET table1.TURNOVERSCORE=CASE
WHEN t2.cnt/12 < 1 AND table1.CAT = 'E' THEN .05
WHEN t2.cnt/12 >= 1 AND t2.cnt/12 < 4 AND table1.CAT = 'E' THEN .5
WHEN (t2.cnt/12) >= 4 AND table1.CAT = 'E' THEN 1
WHEN (t2.cnt/12) <= 5 AND table1.CAT != 'E' THEN .05
WHEN (t2.cnt/12) >= 6 AND (t2.cnt/12) < 11 AND table1.CAT != 'E' THEN .25
WHEN (t2.cnt/12) >= 11 AND (t2.cnt/12) < 21 AND table1.CAT != 'E' THEN .5
WHEN (t2.cnt/12) >= 21 AND table1.CAT != 'E' THEN 1 END";

mysql_query($turnoverquery);

您的括號不匹配。 您在子查詢中兩次有GROUP BY ITEM)

php查詢要求我識別數據庫(當然)。 在Workbench中,一旦選擇了數據庫,就不需要將db.tablename添加到查詢中,而如果尚未用連接字符串標識它,則必須在php中。

只需將我的評論轉換為答案即可。

您需要在執行之前選擇DB,或者將數據庫添加到表名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM