Php 使用equals从数据库获取值,同时忽略某些字母

Php 使用equals从数据库获取值,同时忽略某些字母,php,mysql,regex,database,datatables,Php,Mysql,Regex,Database,Datatables,我在MYSQL中有一个名为“text”的列,它有一个值:“He?llo?”。我试图得到“He?llo?”的值,其中使用等于“Hello”的值来得到它。它不相等,因为“He?llo?”有两个问号,而“Hello”没有。我的问题是,在将“He?llo?”与“Hello”进行比较之前,有没有办法去掉“He?llo?”中的两个问号,使其等于 $text = "Hello"; SELECT text FROM table WHERE text = '$text'; 您可以使用replace(): 您可以

我在MYSQL中有一个名为“text”的列,它有一个值:“He?llo?”。我试图得到“He?llo?”的值,其中使用等于“Hello”的值来得到它。它不相等,因为“He?llo?”有两个问号,而“Hello”没有。我的问题是,在将“He?llo?”与“Hello”进行比较之前,有没有办法去掉“He?llo?”中的两个问号,使其等于

$text = "Hello";
SELECT text FROM table WHERE text = '$text';
您可以使用
replace()

您可以使用
replace()

您可以使用
replace()

您可以使用
replace()


您可以任意多次使用
replace
。但是,这种方法需要对整个表进行扫描,如果表中有许多行,则效率低下

有两种选择:

  • 查看全文索引。它可以满足你的需要,如果能满足你的需要,它将是解决你问题的最有效的方法
  • 添加第二列并用清理后的文本填充它。然后,您可以使用索引以有效的方式比较文本
您可以使用
替换
任意次数。但是,这种方法需要对整个表进行扫描,如果表中有许多行,则效率低下

有两种选择:

  • 查看全文索引。它可以满足你的需要,如果能满足你的需要,它将是解决你问题的最有效的方法
  • 添加第二列并用清理后的文本填充它。然后,您可以使用索引以有效的方式比较文本
您可以使用
替换
任意次数。但是,这种方法需要对整个表进行扫描,如果表中有许多行,则效率低下

有两种选择:

  • 查看全文索引。它可以满足你的需要,如果能满足你的需要,它将是解决你问题的最有效的方法
  • 添加第二列并用清理后的文本填充它。然后,您可以使用索引以有效的方式比较文本
您可以使用
替换
任意次数。但是,这种方法需要对整个表进行扫描,如果表中有许多行,则效率低下

有两种选择:

  • 查看全文索引。它可以满足你的需要,如果能满足你的需要,它将是解决你问题的最有效的方法
  • 添加第二列并用清理后的文本填充它。然后,您可以使用索引以有效的方式比较文本
我需要替换所有问号、句点、逗号、感叹号和1个以上的空格。比如“你好???先生”就是“你好先生”。@ellie。这是一个不同的问题,应该作为一个不同的问题提出。不要在评论中提出新问题。我需要替换所有的问号、句点、逗号、感叹号和1个以上的空格。比如“你好???先生”就是“你好先生”。@ellie。这是一个不同的问题,应该作为一个不同的问题提出。不要在评论中提出新问题。我需要替换所有的问号、句点、逗号、感叹号和1个以上的空格。比如“你好???先生”就是“你好先生”。@ellie。这是一个不同的问题,应该作为一个不同的问题提出。不要在评论中提出新问题。我需要替换所有的问号、句点、逗号、感叹号和1个以上的空格。比如“你好???先生”就是“你好先生”。@ellie。这是一个不同的问题,应该作为一个不同的问题提出。不要在评论中提出新问题。这是唯一的例子吗?(我没有看到“模式”)这是唯一的例子吗?(我没有看到“模式”)这是唯一的例子吗?(我没有看到“模式”)这是唯一的例子吗?(我在这里看不到“模式”)我肯定会去那里。清理数据和确保垃圾不被接受应该是优先事项。我肯定会在那里做2。清理数据和确保垃圾不被接受应该是优先事项。我肯定会在那里做2。清理数据和确保垃圾不被接受应该是优先事项。我肯定会在那里做2。清理数据和确保垃圾不被接受应该是优先事项。
SELECT text
FROM table
WHERE replace(text, '?', '') = '$text';