#!/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或&#39; ab12c&#39;他们中的任何人都不确定。只有已知的东西是字母,id中提供的数字将与提供的顺序相同,并且是唯一的。
答案 0 :(得分:1)
尝试类似这样的事情,如果您确定这些名称是唯一的,只需将它们都投射到小写字母:
select hr_id from users where LOWER(hr_id) LIKE LOWER('%\$user_ID%');
答案 1 :(得分:1)
您可以尝试:
SELECT hr_id FROM users WHERE hr_id LIKE '%\$user_ID %' COLLATE utf8_general_ci;
甚至:
SELECT hr_id FROM users WHERE LOWER(hr_id) LIKE LOWER('%\$user_ID %');
如果您正在使用PostgreSQL:
SELECT hr_id FROM users WHERE hr_id ILIKE '%\$user_ID %';
答案 2 :(得分:0)
告诉你的shell user_ID是小写的:
typeset -l user_ID
read user_ID
echo ${user_ID}