任何人都可以看到這個SQL查詢有什麼問題。Mysql不按預期返回結果
這不返回任何結果,但相同的查詢出來放在讓瓦爾計算,然後在mysql中返回結果3800+
$query = "SELECT * FROM twitter_user JOIN twitter_connection
ON (twitter_user.tu_id = twitter_connection.tc_tu_id)
WHERE tc_followyou = 1 AND tc_twitterapp_user_id = ". $mytwitterid . "
LIMIT " . $perpage . " OFFSET " . $twitter_offset;
執行與此相同的查詢但是確實工作
$query = "SELECT * FROM twitter_user JOIN twitter_connection
ON (twitter_user.tu_id = twitter_connection.tc_tu_id)
WHERE tc_youfollow = 1 AND tc_twitterapp_user_id = ". $mytwitterid . "
LIMIT " . $perpage . " OFFSET " . $twitter_offset;
的唯一不同的是使用tc_followyou vs tc_youfollow
兩者都在同一個表中,沒有NULL記錄和整數。
如果我採取完全相同的一段php代碼和交換tc_followyou tc_youfollow我得到一個結果。
我不知道爲什麼,但如果腳本亞馬遜RDS服務器的Mysql v5.5.8日誌上運行這只是一個問題,另一臺服務器運行MySQL 52年5月1日
按預期工作。
爲什麼服務器版本或字段名稱會導致此問題?
我很難過。
感謝斯蒂芬
UPDATE:這是解決。問題是我運行的實際代碼沒有限制。我不小心在數據庫上運行以獲得「總計」。這是因爲失敗的表有很多記錄,所以沒有返回結果。我接受了解決方案,因爲這個人幫助我通過幫助發現問題的思考過程來工作。
PHP和SQL是不同的語言。嘗試單獨調試你的SQL查詢。 – 2011-05-09 10:59:38
謝謝Alvaro,我試過這樣做,查詢直接在MYSQL中正常工作。這是通過php5執行到MYSQL不起作用,我不能爲我的生活找出原因。 – 2011-05-09 11:04:33
爲防萬一,請在單引號字符串內對完整查詢進行硬編碼。您還可以用'COUNT(*)AS total'來代替'*'來放棄其他問題。 – 2011-05-09 11:35:18