首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MYSQL问题-获取唯一值

问MYSQL问题-获取唯一值
EN

Stack Overflow用户
提问于 2010-11-02 23:46:34
回答 2查看 121关注 0票数 0

假设我在MySQL中有这两个变量

代码语言:javascript
复制
SET data1 = "1,2,3,apple,4,5";
SET data2 = "apple,orange,5";

如何获取出现在这两个变量上的项数?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-03 16:02:42

如果您确实需要在MySQL端执行此操作,您可以在其中创建存储过程(或存储函数):

  • create temporary table (因为MySQL存储的例程不能处理数组,所以您必须将临时表用作数组)
  • create WHILE cycle使用LOCATE()、LEFT()和RIGHT()函数(MySQL Manual: String functions)解析字符串在临时表中插入每个值
  • 从此临时表执行所需的select (带交叉点等)

但这种解决方案还远远谈不上优雅。将标签存储在单独的表中(如上所述,每行一个标签)是更可取的。

票数 0
EN

Stack Overflow用户

发布于 2010-11-03 00:16:12

没有办法分解列表并计算项目数量。在您的本地语言中处理值的唯一方法是:

php中的示例:

代码语言:javascript
复制
$values = mysql_result();
echo count(explode(",", $values));

另一种方法是将所有标签放在一个单独的表中,并将它们连接到一个数据透视表中,然后您可以这样做:

代码语言:javascript
复制
select 
    count(*) 
from 
    items 
join 
    pivot on pivot.item_id = items.id 
join 
    tags on pivot.tag_id = tags.id 
where 
    item.id = {itemid}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4079403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档