在MySQL語句中我們有時候經常會遇到反引號(``),剛開始的時候不知道什麼意思,他是什麼作用呢?
Select * from `member` order by posts desc limit 0,10;它是為了區分MYSQL的保留字與普通字符而引入的符號。 舉個例子:SELECT `select` FROM `test` WHERE select='字段值' 在test表中,有個select字段,如果不用反引號,MYSQL將把select視為保留字而導致出錯,所以,有MYSQL保留字作為字段的,必須加上反引號來區分。 引號一般用在字段的值,如果字段值是字符或字符串,則要加引號,如:select='字段值' 不加反引號建的表不能包含MYSQL保留字,否則出錯 反引號`,數字1左邊的符號。 保留字不能用於表名,比如desc,此時需要加入反引號來區別,但使用表名時可忽略反引號。 create table desc報錯 create table `desc`成功 create table `test`成功 drop table test成功 保留字不能用於字段名,比如desc,此時也需要加入反引號,並且insert等使用時也要加上反引號。 create table `test`(`desc` varchar(255))成功 insert into test(desc) values('fxf')失敗 insert into test(`desc`) values('fxf')成功 mysql常見的保留字 使用mysql時一定要注意,不要使用它的保留字作為表名或者列名,否則會出現莫名其妙的錯誤。 昨天建了一個表,其中一列名為interval(時間間隔),結果數據死都插不進去,最後才發現原來interval是mysql的保留字。 以後出現類似的錯誤要先想想是不是因為表名或列名沖突造成的啊。 從網上找了一個mysql的保留字列表,僅供參考。 ADD ALL ALTER ANALYZE AND AS ASC ASENSITIVE BEFORE BETWEEN BIGINT BINARY BLOB BOTH BY CALL CASCADE CASE CHANGE CHAR CHARACTER CHECK COLLATE COLUMN CONDITION CONNECTION CONSTRAINT CONTINUE CONVERT CREATE CROSS CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURSOR DATABASE DATABASES DAY_HOUR DAY_MICROSECOND DAY_MINUTE DAY_SECOND DEC DECIMAL DECLARE DEFAULT DELAYED DELETE DESC DESCRIBE DETERMINISTIC DISTINCT DISTINCTROW DIV DOUBLE DROP DUAL EACH ELSE ELSEIF ENCLOSED ESCAPED EXISTS EXIT EXPLAIN FALSE FETCH FLOAT FLOAT4 FLOAT8 FOR FORCE FOREIGN FROM FULLTEXT GOTO GRANT GROUP HAVING HIGH_PRIORITY HOUR_MICROSECOND HOUR_MINUTE HOUR_SECOND IF IGNORE IN INDEX INFILE INNER INOUT INSENSITIVE INSERT INT INT1 INT2 INT3 INT4 INT8 INTEGER INTERVAL INTO IS ITERATE JOIN KEY KEYS KILL LABEL LEADING LEAVE LEFT LIKE LIMIT LINEAR LINES LOAD LOCALTIME LOCALTIMESTAMP LOCK LONG LONGBLOB LONGTEXT LOOP LOW_PRIORITY MATCH MEDIUMBLOB MEDIUMINT MEDIUMTEXT MIDDLEINT MINUTE_MICROSECOND MINUTE_SECOND MOD MODIFIES NATURAL NOT NO_WRITE_TO_BINLOG NULL NUMERIC ON OPTIMIZE OPTION OPTIONALLY OR ORDER OUT OUTER OUTFILE PRECISION PRIMARY PROCEDURE PURGE RAID0 RANGE READ READS REAL REFERENCES REGEXP RELEASE RENAME REPEAT REPLACE REQUIRE RESTRICT RETURN REVOKE RIGHT RLIKE SCHEMA SCHEMAS SECOND_MICROSECOND SELECT SENSITIVE SEPARATOR SET SHOW SMALLINT SPATIAL SPECIFIC SQL SQLEXCEPTION SQLSTATE SQLWARNING SQL_BIG_RESULT SQL_CALC_FOUND_ROWS SQL_SMALL_RESULT SSL STARTING STRAIGHT_JOIN TABLE TERMINATED THEN TINYBLOB TINYINT TINYTEXT TO TRAILING TRIGGER TRUE UNDO UNION UNIQUE UNLOCK UNSIGNED UPDATE USAGE USE USING UTC_DATE UTC_TIME UTC_TIMESTAMP VALUES VARBINARY VARCHAR VARCHARACTER VARYING WHEN WHERE WHILE WITH WRITE X509 XOR YEAR_MONTH ZEROFILL 注:MySQL允許部分關鍵字用做未引起來的識別符,因為許多人以前曾使用過它們。如:ACTION、BIT、DATE、ENUM、NO、TEXT、TIME、TIMESTAMP 所以為了安全起見可以在表名和字段名上都加上``。