【问题标题】:Select Statement result with space and without space选择带空格和不带空格的语句结果
【发布时间】:2018-07-03 13:45:40
【问题描述】:

在 MYSQL 中有没有一种方法可以搜索所有带空格和不带空格的记录,也可以通过翻转字符串来搜索

例子:

Search String: JM Edward

预期结果:

J M Edward
JM Edward
J MEdward
Edward J M
Edward JM

【问题讨论】:

  • 对不起 SQl Server 标签,我在这里使用 MYSQL
  • 这并不容易,即使使用正则表达式。
  • @Gordon Linoff 如何使用 Match-Against 进行全文搜索?
  • 你是说你想得到一个搜索字符串,其中包含可选用空格分隔的单词,并且结果应该匹配这些单词的任何排列以及可选插入的空格?考虑单个搜索是相当复杂的。 “JM Edward”的全文搜索将找到“JM Edward”或“Edward JM”或“JM ...(其他东西)... Edward”。但它不会找到“J M Edward”。您可能需要预处理搜索字符串并生成一个或多个可选搜索字符串/正则表达式的集合以进行搜索。
  • @min2bro 。 . .不。首先,您使用的是单个字母(您可以绕过)。更重要的是,在某些情况下,您将它们组合成一个单词。您最好的选择可能是 Levenshtein distance。

标签: mysql sql database select


【解决方案1】:

这对您的搜索有用吗?它将返回所有结果。

SELECT * FROM Names
WHERE Names LIKE '%J%' and Names LIKE '%M%' and Names LIKE '%Edward%'

【讨论】:

    【解决方案2】:

    是的,所以你的 sql 语句看起来类似于这些

    Select * from table like %J% 这将显示所有带有字母 J 的结果,对于空间,您可以这样做: Select * from table % % 中间加空格

    【讨论】:

    • 刚刚修改了搜索字符串。是 JM 爱德华兹。在这种情况下它将如何工作?也看看我的预期结果。
    • 那些匹配的方式比 OP 想要匹配的要多。
    • 如果我理解正确,请添加Select * from table LIKE %JM Edwards%
    • 这不会返回结果 J M Edward
    猜你喜欢
    • 2018-01-22
    • 1970-01-01
    • 1970-01-01
    • 2015-03-30
    • 2014-03-15
    • 1970-01-01
    • 2017-03-05
    • 1970-01-01
    • 2010-12-31
    相关资源
    最近更新 更多