MySQL SELECT LIKE查询,忽略字符串中的颜色代码

时间:2015-02-27 16:27:49

标签: mysql sql database

我有一个字符串数据库,其中包含混有颜色代码和颜色代码的名称(例如§2,§6,§a)。

§2joe (joe)

但是,例如,在单词中混合了一些颜色代码。

§4ha§6rr§ay (harry)

假设我想从数据库中选择名称为Harry的所有人,无论其颜色代码如何。

我目前的解决方案是在搜索的每个字母上添加%。例如。

SELECT * FROM people WHERE name LIKE '%h%a%r%r%y%';

这适用于以颜色代码开头的名称,但似乎并不总是使用与颜色代码混合的名称。

我有更好的方法来进行查询吗?

2 个答案:

答案 0 :(得分:2)

可能有更好的方法来存储数据。

从实际数据中分割格式(保存两个字段)。例如。在插入时保存数据的“干净”版本,以及 “格式化”版本。

外卡没有理由不起作用,但它们不仅仅是“哈利”。它们也会慢得多。

答案 1 :(得分:0)

SELECT * FROM people WHERE REPLACE(name,'§a','') LIKE '%h%a%r%r%y%';

取出问题颜色代码可能会得到你想要的。也就是说,如果你没有字母表中每个字母的颜色代码