【问题标题】:I have some problem using the SQL like operator我在使用类似 SQL 的运算符时遇到了一些问题
【发布时间】:2021-08-30 06:22:59
【问题描述】:

在 API 中,我们只写 ('xyz/: title'),(req, res),当我通过 SQL 查询定义 API 时,在正文中,例如 { select * from users where username = ?, [req, params, xyz] } 然后它工作正常,但我想使用 SQL 'like' 运算符,它不能正常工作,如图所示 { " app.get('/search/:title', (req, res) => {

    mysqlConnection.query('SELECT users.id, users.name, search.id, search.title, search.userid FROM users inner join search on users.id = search.id  where title like = ?', [req.params.title], (err, row, fields) =>{
       if(!err) 
       res.send(row);
       else
       console.log(err);
    })
}); " }

谁能解释一下

【问题讨论】:

  • ```喜欢=? ````请删除=
  • 但如果我删除,那么我如何找到从 a、bf、fd、ei 等任何世界开始的结果
  • 正确的 SQL 语句会使用 somefield LIKE 'somevalue%' 之类的东西,而不是 = 那里

标签: sql node.js


【解决方案1】:

您将需要使用类似的查询

SELECT users.id, users.name, search.id, search.title, search.userid FROM users inner join search on users.id = search.id  where title like ?'

并确保如果 like 是指包含,则在参数值的开头和结尾放置一个 %

【讨论】:

  • 如何在开始和结束时使用 % 可以解释一下
  • @NaeemShahzad 看看这是否有效:... where title like '%' + ? + '%' - 取决于您可能需要&| 而不是+ 的数据库
  • @NaeemShahzad 我会试试['%' + req.params.title + '%']
  • @HansKesting 这可能有用。我现在没有办法测试它,但这是一个完全合理的建议。
猜你喜欢
  • 2012-03-25
  • 1970-01-01
  • 1970-01-01
  • 2021-11-18
  • 2012-05-13
  • 1970-01-01
  • 2021-08-14
  • 2021-07-06
  • 1970-01-01
相关资源
最近更新 更多