mysql - 使用 like 和 % 的 SQL 错误

标签 mysql sql bash

我的脚本旨在循环遍历环境、访问数据库并检查是否有任何名字/姓氏组合具有关联的用户 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/

相关文章:

sql - ms sql 上 SP 性能问题中的 UDF

bash - 如何将 bash 命令的输出传递给 Github Action 参数

linux - @reboot 在 CRON 中不起作用

java - 如何用另一个 JList 的数据填充 JList

mysql - 如何在没有 ON 子句的情况下连接 2 个表

mysql - 根据 GROUP BY 对查询进行排序

sql - 如何用SQL划分两个SELECT语句以获得百分比

mysql - 错误: load data not allowed in stored procedures

mysql - 在 mySQL 中,如何为多个表中的每个客户端 ID 选择最新的时间戳?

linux - shell 脚本内的 perl -p -i -e