在Mysql中,如果字段名帶有橫線(‘-’),則不能直接在SQL語句中使用,否則會報錯。
例如,假設我們有一個表,其中帶有id和user_name兩個字段,其中user_name的值帶有橫線,如下所示:
CREATE TABLE user( id int(11) NOT NULL AUTO_INCREMENT, user_name varchar(50) NOT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO user(user_name) VALUES('user-1'),('user-2'),('user-3');
如果我們想按照user_name進行排序,常規的SQL語句會如下所示:
SELECT * FROM user ORDER BY user_name;
然而,上述語句會報錯,提示:
ERROR 1054 (42S22): Unknown column 'user_name' in 'order clause'
因為Mysql將橫線解析為減號,所以在上述語句中,它實際上是在嘗試排序一個不存在的列’user – name’。
為了解決這個問題,我們需要使用反引號(backticks),將帶有橫線的column name括起來,以表示它是一個整體,如下所示:
SELECT * FROM user ORDER BY `user_name`;
這樣就可以按照user_name進行排序了。
下一篇mysql 權限粒度