使用equals从数据库获取值而忽略某些字母

时间:2015-08-08 20:18:11

标签: php mysql regex database datatables

我在MYSQL中有一个名为'text'的列,它有一个值:“He?llo?”。我想要获得“他?llo?”的价值。使用等于“Hello”来获取它。它不等于“He?llo?”里面有2个问号,“Hello”没有。我的问题是,有没有办法以某种方式删除“他?llo?”中的2个问号?在将它与“Hello”进行比较之前,它等于?

$text = "Hello";
SELECT text FROM table WHERE text = '$text';

2 个答案:

答案 0 :(得分:2)

您可以使用replace()

SELECT text
FROM table
WHERE replace(text, '?', '') = '$text';

答案 1 :(得分:1)

您可以根据需要多次使用replace。但是这种处理方式需要全表扫描,如果你的表有很多行,这是低效的。

有两种选择:

  • 查看全文索引。它可以满足您的需求,如果确实如此,它是解决问题的最有效方法。
  • 添加第二列并用清理后的文本填充。然后,您可以使用索引以有效的方式比较文本。