我有一个字符串数据库,其中包含混有颜色代码和颜色代码的名称(例如§2,§6,§a)。
§2joe (joe)
但是,例如,在单词中混合了一些颜色代码。
§4ha§6rr§ay (harry)
假设我想从数据库中选择名称为Harry的所有人,无论其颜色代码如何。
我目前的解决方案是在搜索的每个字母上添加%。例如。
SELECT * FROM people WHERE name LIKE '%h%a%r%r%y%';
这适用于以颜色代码开头的名称,但似乎并不总是使用与颜色代码混合的名称。
我有更好的方法来进行查询吗?
答案 0 :(得分:2)
可能有更好的方法来存储数据。
从实际数据中分割格式(保存两个字段)。例如。在插入时保存数据的“干净”版本,以及 “格式化”版本。
外卡没有理由不起作用,但它们不仅仅是“哈利”。它们也会慢得多。
答案 1 :(得分:0)
SELECT * FROM people WHERE REPLACE(name,'§a','') LIKE '%h%a%r%r%y%';
取出问题颜色代码可能会得到你想要的。也就是说,如果你没有字母表中每个字母的颜色代码