最近在使用MySQL的時候,遇到了一個奇怪的問題,就是我輸入的小于號“<”在MySQL執行后變成了引號“>”。
CREATE TABLE test (id INT, content VARCHAR(100));
INSERT INTO test VALUES (1, '<p>這是一段測試內容</p>');
SELECT * FROM test WHERE content < '<p>這是一段測試內容</p>';
以上代碼是我用MySQL進行測試的代碼,正常來說,執行SELECT語句時應該能夠查到id為1的記錄,但是結果卻提示錯誤:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '>chr(8220);' at line 1
從錯誤信息可以看出,MySQL將我的小于號“<”替換成了引號“>”,導致語法錯誤。這個問題的原因是因為MySQL在執行SELECT語句時把輸入的小于號解釋為HTML標記,進而將小于號轉義成引號。
為了解決這個問題,需要對輸入的小于號進行轉義,將“<”替換成“<”:
CREATE TABLE test (id INT, content VARCHAR(100));
INSERT INTO test VALUES (1, '<p>這是一段測試內容</p>');
SELECT * FROM test WHERE content < '<p>這是一段測試內容</p>';
這樣就能夠成功執行SELECT語句,查到id為1的記錄了。
總結一下,當我們在MySQL中輸入小于號“<”時,MySQL會將其解釋為HTML標記,導致語法錯誤。為了避免這個問題,需要對小于號進行轉義,將“<”替換成“<”。
上一篇vue byte圖片
下一篇vue build 路徑