排除 MySQL 技術疑難問題: Difference between revisions

Jump to navigation Jump to search
m
Line 73: Line 73:


解決方案:只保留一個表名 'column_name' 或添加表名別名。
解決方案:只保留一個表名 'column_name' 或添加表名別名。
=== 錯誤 1054 - 'where 子句' 中未知的欄位 ===
訊息:[Err] 1054 - 'where 子句' 中未知的欄位 'xxx'
解決方案:
# 檢查 'xxx' 欄位名稱是否存在
# 如果 'xxx' 欄位名稱是由 [http://dev.mysql.com/doc/refman/5.7/en/example-user-variables.html 使用者定義的變數] 計算得出。將整個查詢放入另一個母查詢中。
<pre>
-- 遇到錯誤訊息的查詢:[Err] 1054 - 'where 子句' 中未知的欄位 'rank'
SELECT semi.*, IF(semi.id = semi.prev, @rank := @rank +1, @rank := 1 ) AS `rank` 
FROM
(
        ...
) semi
WHERE semi.rank <= 10
</pre>
將整個查詢放入另一個母查詢中。
<pre>
SELECT final.*
FROM
(
        SELECT semi.*, IF(semi.id = semi.prev, @rank := @rank +1, @rank := 1 ) AS `rank` 
        FROM
        (
                ...
        ) semi
) final
WHERE final.rank <= 10
</pre>


== 資源和環境錯誤 ==
== 資源和環境錯誤 ==

Navigation menu