【问题标题】:MySQL wildcard matching any character or noneMySQL通配符匹配任何字符或无
【发布时间】:2015-10-27 14:17:54
【问题描述】:

我有一个使用 MATCH 的查询,类似于:

..
MATCH product_title, product_d1, product_d2, product_d3 AGAINST ('+VALUE*')
..

其中 VALUE 是 PHP 修改的关键字,它指的是产品标题可以包含的关键字或任何其他字段。

当我想使用“笔”之类的搜索时出现问题,因为我想识别那些单数的“笔”。这个问题不是那么容易解决的,因为如果我删除了结尾的“s”它无法识别像“christmas”这样的关键字,它是一个单数。

是否有任何通配符来指定“任何字符(1 个长度)”或“无”?否则我想我应该创建 2 行来指定复数或单数,但这会花费更长的执行时间。

提前谢谢你

【问题讨论】:

  • @Juan,这个链接和这个问题有什么关系?
  • 这是一个例子,在原始查询上阻止了 SQL 注入。
  • 如果匹配关键字是单数,问题就容易多了

标签: mysql sql wildcard


【解决方案1】:

有一个单数到复数的映射表。为了缩小这张桌子的大小,你可以在里面放一些特殊的词,比如“圣诞节”。

您可以同时索引单数和复数列,以便从一列映射到另一列。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-03
    • 1970-01-01
    • 2011-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多