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

Jump to navigation Jump to search
m
Line 248: Line 248:
<pre>
<pre>
$ mysqldump -h 127.0.0.1 -u USER -p --skip-lock-tables DATABASE_NAME TABLE_NAME > TABLE_NAME.sql
$ mysqldump -h 127.0.0.1 -u USER -p --skip-lock-tables DATABASE_NAME TABLE_NAME > TABLE_NAME.sql
</pre>
== 錯誤 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>
</pre>


Navigation menu