【发布时间】:2013-04-14 02:58:06
【问题描述】:
我需要使用 SQL 匹配下面提到的模式。
- “*谢谢”
- "* 音乐 *"
- “我喜欢*音乐”
- “我喜欢 * 音乐和 * 绘画”
输入字符串将如下所示,
"HI THANK YOU" -> 应该匹配 "* THANK YOU"
"I LIKE MUSIC VERY MUCH" -> 应该匹配 "* MUSIC *"
有没有办法使用标准 SQL 语法来做到这一点。
请帮忙。
谢谢。
【问题讨论】:
-
星号是错别字还是数据的一部分?为什么第二个目标字符串匹配数据
2.而不是3.或4.? -
另外,“标准 SQL”是什么意思?您真的在寻找适用于 Oracle 和 MySQL RDBMS 的解决方案吗?
-
是的 * 是数据的一部分。实际上它们是正则表达式。理想的情况是 SQL 查询适用于任何改动很小的 dbms。
-
寻找文本挖掘解决方案。这不是经典数据库问题。
-
正如@haki 所说,这不是标准SQL 可以解决的问题。每个 DBMS 使用略有不同的语法处理模式匹配。
标签: mysql sql database oracle pattern-matching