gpt4 book ai didi

mysql - 搜索名字、中间名和姓氏的所有组合

转载 作者:可可西里 更新时间:2023-11-01 07:05:02 25 4
gpt4 key购买 nike

在我的数据库中有一个名为author 的表,它有 4 列:

  • 作者编号
  • 名字
  • 中间名
  • 姓氏

例如,用户正在搜索 Edgar Allan Poe。在我们的表中,Edgar Allan Poe 保存为:firstName- Edgar,middleName - Allan 和 lastName - Poe。这个查询非常简单。但是,如何编写一个不仅匹配 Edgar Allan Poe,而且匹配 Poe Allan Edgar, Edgar Poe, Allan Poe, Edgar Allan, Allan Edgar Poe 的查询,而无需自己编写所有这些可能的组合?此外,当用户搜索时,他/她搜索的是“Edgar Allan Poe”或“Poe Allan Edgar”,而不是在单独的字段中。

最佳答案

在任何数据库中,你都可以这样做:

where firstName in ('Edgar', 'Allan', 'Poe') and
middleName in ('Edgar', 'Allan', 'Poe') and
middleName <> firstName and
lastname in ('Edgar', 'Allan', 'Poe') and
lastname not in (firstname, middleName)

如果您愿意,这实际上很容易扩展到更多名称——假设名称与示例中的名称不同(如果您希望允许作者使用重复的名称,只需从上述查询中删除第 3 行和第 5 行) .

但是,根据您的数据库,您可能希望改用正则表达式或全文搜索。

关于mysql - 搜索名字、中间名和姓氏的所有组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43838479/

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