Postgresql小写字母比较数据
问题描述:
我想从Postgresql数据库中的一行中获取内容,并将它的小写版本与用户输入的小写版本进行比较,以检查它是否存在于数据库中。Postgresql小写字母比较数据
我想:
"SELECT LOWER(name) FROM user_names WHERE name LIKE '%$search%' ORDER BY name ASC"
但使查询根本不工作。
编辑
我想实现自动完成jQuery UI的喜欢这里: http://jqueryui.com/demos/autocomplete/#remote 的搜索框(地名)
使用JavaScript和PHP。
PHP代码:
$search = ($_GET['term']);
if (!$con)
{ die('Could not connect: ' . pg_last_error());}
else
{
$sql = "SELECT name FROM users_table WHERE name LIKE '%$search%' ORDER BY name ASC";
$result = pg_query($sql);
$json = '[';
$first = true;
while ($row = pg_fetch_array($result))
{
if (!$first) { $json .= ','; } else { $first = false; }
$json .= '{"value":"'.$row['name'].'"}';
}
$json .= ']';
echo $json;
exit();
}
JavaScript代码:
$(document).ready(function()
{
$('#auto').autocomplete(
{
source: "./file.php",
minLength: 3
})
})
所有上述工作伟大的..酷似演示这里:http://jqueryui.com/demos/autocomplete/#remote
我的问题是,数据库中以大写形式存储的名称(例如LORI) ,并且用户当然希望在搜索框中插入小写字母来搜索姓名(例如,洛瑞)。但由于它以大写形式存储,我需要将其转换。
我想为你的建议:
$sql = "SELECT LOWER(name) FROM users_table WHERE name ILIKE '%$search%' ORDER BY name ASC";
然后我有一个空的下拉列表中! 很奇怪!
在此先感谢。
答
SELECT LOWER(name) FROM user_names
WHERE name ILIKE '%$search%' ORDER BY name ASC
感谢,但我依然从JSON有一个空的数组,如果我使用较低 – Shadin 2012-04-29 05:17:33
@Shadin对不起,我是不是在我的岗位很清楚。建议是把LIKE改成ILIKE – dwurf 2012-04-29 05:21:16
是的,我注意到了,试了一下。我不明白为什么我得到一个空阵列 – Shadin 2012-04-29 10:13:49