gpt4 book ai didi

mysql - 我想在 mysql 中使用 Node js 搜索元素列出的单个单元格

转载 作者:行者123 更新时间:2023-11-30 21:27:58 25 4
gpt4 key购买 nike

我想获取存储在 users 表中的所有用户详细信息,如果他的电子邮件和提供的代码列表中的任何代码(我们将在注册时向他提供代码)匹配

存储在名为 codes 的单个单元格中的唯一代码,我想搜索 'SNngyCbU4xuIJVh7'(第三个)

"O8g5Sd24kh9ymW2G","gkkxcCkN0PMA91Av","SNngyCbU4xuIJVh7"

查询电子邮件和代码

db.sequelize.query('SELECT * FROM users '+
'WHERE code='+"'"+code+"' AND "+
' email= ' + "'" + email + "'").then(function(app){

请帮我正确查询MySQL,谢谢

最佳答案

您可以使用 FIND_IN_SET() .

FIND_IN_SET(str,strlist)

Returns a value in the range of 1 to N if the string str is in the string list strlist consisting of N substrings. A string list is a string composed of substrings separated by , characters.

SELECT *
FROM users
WHERE FIND_IN_SET(:code, codes) AND email = :email

在您现有的代码中:

db.sequelize.query(
"SELECT *"
+ " FROM users"
+ " WHERE FIND_IN_SET('" + code + "', codes) AND email= '" + email + "'"
).then(function(app){ ... }

注意:人们倾向于使用 ' 来定义 SQL 中的字符串而不是 ",因为所有 RDBMS 都支持它。我更改了您的代码以利用它约定。

注意 2:根据您的问题,不清楚包含代码的列是命名为 code 还是 codes。我选择了第二个选项,因为它似乎更有意义。


如果您的数据包含嵌入的双引号,您可以按如下方式进行:

SELECT *
FROM users
WHERE FIND_IN_SET(CONCAT('"', :code, '"'), codes) AND email = :email

在 sequelize 中(使用反引号来避免需要转义双引号):

db.sequelize.query(
`SELECT *`
+ ` FROM users`
+ ` WHERE FIND_IN_SET('"` + code + `"', codes) AND email= '` + email + `'`
).then(function(app){ ... }

关于mysql - 我想在 mysql 中使用 Node js 搜索元素列出的单个单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57952311/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com