MySQL: 从全名字段中提取名字或姓氏
MySQL: Extracting First Name or Last Name From Full Name Field
在 MySQL 中,我有一个用户 table 有一个名为 name 的字段。此名称字段可以包含全名或仅包含名字或姓氏。请参见下面的示例。我很难写一个查询,如果我输入名字,它应该 return 给我一个名字或全名的每个人的列表。
//MySQL query for finding user by name
findUserByName: (name) =>{
return new Promise((resolve, reject) =>{
pool.query(
`SELECT id, user_image, name, email, is_online FROM users WHERE name = ?`,
[name],
(error, results, fields) =>{
if(error){
return reject(error);
}
else{
return resolve(results);
}
}
);
})
},
//If I type mike it should return me all three of the below names. If I type mike jones it should only return me mike jones.
+------------+
| name |
+------------+
| Mike Jones |
+------------+
| Mike Brady |
+------------+
| Mike |
+------------+
不like
做你想做的事吗?
SELECT id, user_image, name, email, is_online
FROM users
WHERE name LIKE CONCAT('%', ?, '%')
这将搜索 name
中任意位置的参数字符串。如果只想在字符串的开头搜索,可以将谓词更改为:
WHERE name LIKE CONCAT(?, '%')
在 MySQL 中,我有一个用户 table 有一个名为 name 的字段。此名称字段可以包含全名或仅包含名字或姓氏。请参见下面的示例。我很难写一个查询,如果我输入名字,它应该 return 给我一个名字或全名的每个人的列表。
//MySQL query for finding user by name
findUserByName: (name) =>{
return new Promise((resolve, reject) =>{
pool.query(
`SELECT id, user_image, name, email, is_online FROM users WHERE name = ?`,
[name],
(error, results, fields) =>{
if(error){
return reject(error);
}
else{
return resolve(results);
}
}
);
})
},
//If I type mike it should return me all three of the below names. If I type mike jones it should only return me mike jones.
+------------+
| name |
+------------+
| Mike Jones |
+------------+
| Mike Brady |
+------------+
| Mike |
+------------+
不like
做你想做的事吗?
SELECT id, user_image, name, email, is_online
FROM users
WHERE name LIKE CONCAT('%', ?, '%')
这将搜索 name
中任意位置的参数字符串。如果只想在字符串的开头搜索,可以将谓词更改为:
WHERE name LIKE CONCAT(?, '%')