This question already has answers here:
Using a command that needs backticks to be passed as part of an argument in bash
                                
                                    (2个答案)
                                
                        
                                4个月前关闭。
            
                    
我有一个查询

Select id, contact_name from Profile where TRIM(IFNULL(contact_name,'')) <> ''


我正在尝试将其传递到Bash脚本中。

mysql --user abc -psomePass MyData -e "SELECT `id`,`contact_name` from `Profile` where TRIM(IFNULL(`contact_name`,'') <> ''" | while read term_id; do
done


但它不喜欢单引号''。如何在脚本中格式化?

我试过了

TRIM(IFNULL(`contact_name`,\'\') <> \'\'"




TRIM(IFNULL(`contact_name`,\") <> \""




TRIM(IFNULL(`contact_name`,"''") <> "''""


我没主意。

最佳答案

但它不喜欢单引号。


我机器上的Bash可以用单引号引起来:

 $ echo "SELECT id,contact_name from Profile where TRIM(IFNULL(contact_name,'') <> ''"
 SELECT id,contact_name from Profile where TRIM(IFNULL(contact_name,'') <> ''
 $

关于mysql - 如何在bash脚本中的MySQL select中使用单引号? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58034287/

10-16 11:05