gpt4 book ai didi

mysql - 在数据库中查找包含特定字符串的记录

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

我有以下“tweets”表:

tweet_id  user_id  text
---------------------------------------------------
1 2 this is a tweet with (TAG} in it
2 2 tweet without a TAG
3 2 {TAG} another {TAG} tweet
4 4 look at my {TAG} and weep!

我想为每个用户计算至少一次包含 {TAG} 的推文数量。标签可以在推文中的任何位置:开头、中间或结尾(阅读:后面没有空格或任何内容)。该表有数百万条记录,因此我正在寻找一种有效的方法来执行此操作。我的第一次尝试是

SELECT COUNT(tweet_id) FROM tweets WHERE `text` LIKE '%{TAG}%' AND user_id = 2

但这会返回 0,而在此示例中,它应该返回 2。所以有两个问题:(i) 我做错了什么以及 (ii) 是否有更有效的方法来做到这一点?

[编辑]

我想将结果插入“用户”表:

user_id  tweets_with_tag
2 2
3 0
4 9

是否可以在同一个查询中进行计数和插入?

最佳答案

插入:

INSERT INTO users(user_id, tweets_with_tag) 
SELECT COUNT(tweet_id) as 'tweets_with_tag',
[user_id] as 'user_id'
FROM tweets
WHERE text LIKE '%{TAG}%'
GROUP BY user_id

编辑:如果用户表已经存在,执行以下操作

UPDATE users
SET tweets_with_tag = (
SELECT COUNT(tweet_id) as 'tweets_with_tag'
FROM tweets
WHERE text LIKE '%{TAG}%' and user_id = users.user_id
GROUP BY user_id)

关于mysql - 在数据库中查找包含特定字符串的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9924242/

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