【问题标题】:how to uniquely concatenate a value in mysql for a non key field如何在mysql中为非关键字段唯一地连接一个值
【发布时间】:2012-06-26 08:08:20
【问题描述】:

我正在使用第三方 mysql 表(即我无法更改其任何属性),并且我有一行包含 id(键)、名称和值。

我想将唯一的缓存键存储到名为 cacheKeys.. 的行中,这是我的 sql 语句

$query = "INSERT INTO ".$tableName." (name, value) VALUES ('CacheKeys', '".$key."') ON
DUPLICATE KEY UPDATE value = CONCAT_WS (',', $tableName.value, '$key')";

我已经实现了我的缓存算法,所以每次有人添加缓存键时,我都会检查它是否已经存在(从上面的 CacheKeys 行),如果存在,我会从缓存中获取它。否则我存储它。

问题是好像sql写操作很费时间,而且经常存储重复的cacheKeys 即:currency,defaultCurrencyId,user19,currency1,currency1,currency1,currency1,currency1

所以我需要检查一下,我没有在 cacheKeys 字段中添加重复的键。我需要使用 SQL 来做到这一点(使用 php,即正则表达式等会非常昂贵)。

【问题讨论】:

    标签: mysql sql unique concatenation


    【解决方案1】:

    试试这个::

     INSERT INTO tb (firstname, lastname) VALUES ('Jack', 'Doe') IF NOT  
     EXISTS ( SELECT * FROM tb WHERE firstname='Jack' AND lastname='Doe' );
    

    【讨论】:

    • 这不能回答我的问题..您的答案中没有唯一的字符串连接
    猜你喜欢
    • 1970-01-01
    • 2019-02-27
    • 2013-06-15
    • 2018-04-21
    • 1970-01-01
    • 2020-10-05
    • 1970-01-01
    • 2019-01-21
    • 2013-05-21
    相关资源
    最近更新 更多