2016-03-27 52 views
0

值。當執行該代碼在bash:MySQL錯誤1054 - 連字符

q="$conn 'SELECT name FROM device WHERE uid='0dba9ec2-f2fe-11e5-be09-000c29437b45';'" 
r=$(ssh "$ssh_user"@"$ssh_host" $q) 
echo "R is.. " $r; 

我得到這樣的輸出:

「ERROR 1054(42S22)位於第1行:在未知列 '0dba9ec2'' where子句'「

$ r的值爲空。我試過其他查詢,其中WHERE過濾器的值沒有連字符,並且工作正常,所以我猜測連字符可能與它有關。

我很感激任何關於我可能錯過的指導嗎?

謝謝!

回答

0

修復您的查詢。您正在使用4個單引號,取消對方。而不是外部單引號,使用逃脫雙引號\"

q="$conn \"SELECT name FROM device WHERE uid='0dba9ec2-f2fe-11e5-be09-000c29437b45\";'"  
+0

謝謝!在第二個反斜槓之前,我不得不添加一個單引號來關閉uid,但是轉義完成了。 – kilele