【发布时间】:2015-06-13 19:43:59
【问题描述】:
#!/bin/ksh
echo "enter user ID\n"
read user_ID
echo "Searching user id $user_ID"
variable1=`sqlplus -s / <<EOF
SET PAGESIZE 0 FEEDBACK OFF VERIFY OFF HEADING OFF ECHO OFF ESCAPE '\'
select hr_id from users where hr_id LIKE '%\$user_ID %';
EXIT;
EOF`
if [ -n "$variable1" ];
then
echo "deleting the id $variable1"
variable2=`sqlplus -s / <<EOF
SET PAGESIZE 0 FEEDBACK OFF VERIFY OFF HEADING OFF ECHO OFF ESCAPE '\'
delete from users where hr_id= '$user_ID';
else
echo "Please enter correct user ID."
fi
我需要 sql 查询从 db 中搜索正确的用户 ID,即使它以任何格式给出
select hr_id from users where hr_id LIKE '%\$user_ID %';
我想删除用户 ID ab123c。如果用户提供aBc123C 任何大小写格式,它应该从db 中搜索并找到ab123c 本身,因为提供的ID 将是唯一的。
用户 ID 可以是 AB12C 、 ab12c 或 'ab12c ' 其中任何一个都不确定。只有已知的是 id 中提供的字母和数字将与提供的顺序相同,并且是唯一的。
【问题讨论】:
-
将输入转换为小写,然后使用
WHERE LOWER(hr_id) LIKE -
您使用的是什么关系型数据库?它可能有一种内置的方式来进行不区分大小写的匹配。