所以我将此项目添加到了我的数据库中
title: green shorts
upc: 999
description: mens polyester blend
brand: lrg
location: row-1
这是我的查询
client.query('SELECT DISTINCT id, title FROM items WHERE fk = $1 AND ( title ILIKE $2 OR description ILIKE $2 OR custom1 ILIKE $2 OR custom2 ILIKE $2 OR sku ILIKE $2) OR (upc = $2) ', [data.fk, data.search], (err, res) => {
如果data.search为空白或”,则返回绿色短裤, 但是,如果data.search ='green'则不返回任何内容? 我的查询有问题吗?
我希望能够搜索术语“绿色”并搜索标题,描述,品牌,装潢或位置上带有绿色的单词
ILIKE是否不正确?
答案 0 :(得分:1)
您需要使用%符号表示通配符。
WHERE title LIKE '%searchTerm%'
将返回包含搜索词的任何内容。
答案 1 :(得分:1)
=
给出了完全匹配,但Like
用于获得与模式匹配的结果,即包括通配符的结果。
您需要使用%
来表示一个模式
例如,在您需要的情况下,无论您在哪里找到需要匹配的绿色,都需要两个%'s
才能得到绿色的内接标记,即
select ..... where title like "%green%"