【问题标题】:Treat nearly similar colour as same将几乎相似的颜色视为相同
【发布时间】:2015-10-14 18:14:25
【问题描述】:

我有一个数据库,在一列中包含十六进制代码中的颜色

颜色示例: #EDAC13#13C9ED#BE13ED

如果我们采用两种颜色,例如:#ED9A13#EB9710

当我们查询表格时,这两种颜色在视觉上几乎相同,但不同。

我需要的是一个过程,我可以在搜索数据库时选择几乎相同的视觉颜色。我的意思是当我搜索#ED9A13 时,#ED9A13#EB9710 都会返回。我使用PHP 作为我的编程语言。

我知道将 RGB 存储在三个不同的列中可能可行,但如果我能够使用十六进制代码做到这一点,那就太棒了。

【问题讨论】:

    标签: php mysql database colors pattern-matching


    【解决方案1】:

    我想,如果你在你的数据库查询中做这样的事情:

    SELECT * FROM table WHERE color LIKE '#E_9_1_'
    

    您将检索代码类似于“#E(anycharacter)9(anycharacter)1(anycharacter)”的所有颜色...

    '_' 是“一个字符”的通配符

    '%' 是任何字符(一个或多个)的通配符

    希望对你有帮助

    【讨论】:

    • 感谢您的回答。可能它会在一定程度上帮助我,但如果第一个字母改变或最后一个字母改变我的意思是E1 那么这个过程将失败。能否请您给我一些更好的建议。
    • 那你为什么不使用'OR'运算符(或联合)并添加你的新条件如'#_D_A_3'或其他东西?
    • 其实我很担心结果很好,我不太了解十六进制代码是如何制作的,我想我需要尝试一下你的解决方案。我必须确保在此期间颜色必须看起来相似而不是完全不同。
    • 它类似于 rgb,但具有字母/数字关联...例如:#RRGGBB,值从 0 到 F (0,1,2,3,4,5,6,7,8,9 ,A,B,C,D,E,F)。 #FF0000 是红色的......等等......
    • 哦!我明白了,因为 FF 是 255。我正在检查您的建议,例如:#3F5FFF 和 #3050​​F0 将被视为相同,它们几乎相似,但在眼睛上仍然有些不同,现在它会拯救我的一天。稍后我将不得不对其进行改进以使其完美。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-08
    • 1970-01-01
    • 2011-03-13
    相关资源
    最近更新 更多