我的脚本旨在循环遍历环境、访问数据库并检查是否有任何名字/姓氏组合具有关联的用户 ID。我不确定为什么会收到下面列出的错误。
#/bin/bash
#specify user to search for *******DO NOT PUT SPACE, ie. jaylefler
echo "Please enter user first name: "
read first_name
echo "Please enter user last name: "
read last_name
echo "Please enter LDAP User ID: "
read ldapuser
echo "Please enter LDAP password: "
stty -echo
read ldappw
stty echo
#logs to write output to
log="ui_${username}_access.log"
finallog="${username}_ui_access.txt"
#create file if not exist, else null it
[[ -f ${log} ]] && cat /dev/null > ${log} || touch ${log}
[[ -f ${finallog} ]] && cat /dev/null > ${finallog} || touch ${log}
#log it all
{
echo "environment"
sshpass -p $ldappw ssh $ldapuser@54.123.777.567 'mysql -h host -u user - ppassword database -e \
"select user_id from users where first like "%'${first_name}'%" and last like "%'${last_name}'%";"'
} > $log
当我执行脚本时,我收到以下错误:
Please enter user first name:
jay
Please enter user last name:
lefler
Please enter LDAP User ID:
jlefler
Please enter LDAP password:
ERROR 1064 (42000) at line 1: 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 '%jay% and last like %lefler%' at line 1
jlefler@ubuntu:~/Desktop$
最佳答案
我不太熟悉这种类型的脚本,但在我看来,围绕 %jay% 和 %lefler% 需要引号,以便 SQL 显示为:
select user_id from users where first like '%jay%' and last like '%lefler%';
关于mysql - 使用 like 和 % 的 SQL 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28349859/