mysql:从全名字段中提取名字或姓氏

crcmnpdw  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(406)

在mysql中,我有一个users表,其中有一个名为name的字段。此名称字段可以包含全名,也可以仅包含名或姓。参见下面的示例。我有一个困难的时候写一个查询,如果我输入的名字,它应该返回给我一个名单,每个人的名字或全名。

//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       |
+------------+
mcvgt66p

mcvgt66p1#

like 你想要什么?

SELECT id, user_image, name, email, is_online 
FROM users 
WHERE name LIKE CONCAT('%', ?, '%')

这将在中的任意位置搜索参数字符串 name . 如果只想在字符串的开头搜索,可以将 predicate 更改为:

WHERE name LIKE CONCAT(?, '%')

相关问题