【问题标题】:MySQL (via phpmyadmin) filter for punctuation marksMySQL(通过 phpmyadmin)过滤标点符号
【发布时间】:2021-05-01 09:55:41
【问题描述】:

我接到了即将到来的考试的作业,我需要在充满电影详细信息的数据库中搜索带有标点符号的标题。

我唯一的想法是使用 MySQL 的 IN 运算符查找带有特定标点符号的名称。

SELECT title
FROM `movies`
WHERE title LIKE "%.%" OR title LIKE "%" [- and so on]

或其他方式:

SELECT title
FROM `movies`
WHERE title IN (., %) [- and so on]

但是,这在逻辑上是不正确的。 当我过滤“.”/dot charachter/时,它也会返回带有“i”的标题。

你能帮帮我吗? 提前谢谢!

【问题讨论】:

  • 您的第一个查询有什么问题,这可能不是最优的,但看起来逻辑上正确?
  • 正确,是的,并且给出了很好的结果,但是,您不可能从包含数千个条目的数据库中知道所有类型的标点符号;这就是为什么我正在寻找另一种方式。

标签: mysql phpmyadmin punctuation


【解决方案1】:

查找具有一个或多个标点字符的所有标题的一种通用方法是将REGEXP[[:punct:]] 模式一起使用:

SELECT title
FROM movies
WHERE title REGEXP '[[:punct:]]';

【讨论】:

    猜你喜欢
    • 2016-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-05
    • 2012-06-04
    • 2021-03-29
    • 2012-03-05
    • 2011-05-28
    相关资源
    最近更新 更多