首页 > 解决方案 > 我很困惑为什么我的查询没有返回正确的项目

问题描述

所以我将此项目添加到我的数据库中

   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' 它不返回任何内容?我的查询有问题吗?

我希望能够搜索“绿色”一词并搜索标题、描述、品牌、upc 或位置中带有绿色一词的任何项目

ILIKE不是正确的术语吗?

标签: sqlpostgresql

解决方案


您需要使用 % 符号来表示通配符。

WHERE title LIKE '%searchTerm%'

将返回包含搜索词的任何内容。


推荐阅读