gpt4 book ai didi

mysql - 如何更改 select 语句中的列值

转载 作者:行者123 更新时间:2023-11-29 02:29:55 25 4
gpt4 key购买 nike

我在 mysql 表中有一个选择结果如下:

topic user weight  
"hello" 324 3
"hello" 21 1
"second thread" 34 1
"second thread" 21 1
"second thread" 32 1
"second thread" 3 3
"hello" 23 1

我想把第一列“主题”变成数字,以简化事情。是否可以将一列变成这样的数字:

topic user weight  
1 324 3
1 21 1
2 34 1
2 21 1
2 32 1
2 3 3
1 23 1

非常感谢您的帮助!

最好的问候,西蒙妮

最佳答案

这是一个获取DISTINCT 主题列表并分配要加入的行号的方法。这使得在一个查询中加上一个变量成为可能:

已编辑:重构以初始化 FROM 子句中的 rownum 变量,这看起来更整洁,不会产生 n*2 行号的值。

SELECT id, yourtable.*
FROM
yourtable
JOIN (
/* Suquery gets row rank per distinct topic */
SELECT topic, @rownum:=@rownum+1 AS id
FROM (
/* Variable initialized in FROM clause */
SELECT @rownum:=0
) sr JOIN (
SELECT DISTINCT topic FROM yourtable
) t
) topicids ON yourtable.topic = topicids.topic

http://sqlfiddle.com/#!2/58d53/14

ID  TOPIC    USER   WEIGHT
1 "hello" 324 3
1 "hello" 21 1
2 "second" 34 1
2 "second" 21 1
2 "second" 32 1
2 "second" 3 3
1 "hello" 23 1

关于mysql - 如何更改 select 语句中的列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14817867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com