我试图使用LIKE
语句连接变量,出于某种原因,它仅查找要搜索的单词位于文本变量末尾的值。PSQL:在存储过程中使用LIKE连接值
我使用的PostgreSQL 8.4和这个被存储在函数(存储过程)
考虑在此示例中:
a.key1是 “HELLO”
a_text是“我向你道去世界”
代码:
SELECT count(1), a.key1, a.active, a.campkeydbid
FROM campkeydb a
WHERE a_text LIKE '%'|| a.key1 ||'%'
GROUP BY a.key1, a.active, a.campkeydbid
INTO a_count, a_campaignkey, a_active, a_campkeydbid;
在这个存储过程中,它不会返回值;它不会找到“HELLO”这个词?
它只会返回值如果a_text包含“我打招呼”
有谁知道我做错了吗?看起来这是正确的,因为我在变量a.key1的两侧连接了一个%。
你确定'a.key1'完全是'HELLO'而不是'HELLO'或类似的东西吗?尝试快速'选择' - '|| key1 || ' - '从campkeydb'看看你是否有流浪的空间。 – 2012-07-06 03:53:36
或者'a_text'值可能有问题?您是否尝试过使用'a_text' *替换字符串本身来运行此查询? – 2012-07-06 04:58:24
谢谢您的回应..我做了一些快速选择并没有空格,但是我还在我的JAVA中添加了修剪以发送“干净”信息!谢谢......它通过添加“AND a.deleted = false”得到解决,我意识到有更多的行但被标记为已删除... – Beto 2012-07-06 15:50:30