从MySQL中提取数据并对字段进行字符串处理
来源:互联网 发布:ins图片下载软件 编辑:程序博客网 时间:2024/05/16 15:11
具体要求:
完成~
从mysql数据库的表table中提取u_ch_id(用户ID)与m_content(博文内容)字段,找出发帖数量最多的N个用户,从m_content中找出与该用户相关的用户(@的用户),构建社交关系。table表结构如下:
一、首先对table表进行处理,分析如下:
1.进行嵌套查询的时候子查询出来的的结果是作为一个派生表来进行上一级的查询的,所以子查询的结果必须要有一个别名,否则会报错:
Error Code: 1248. Every derived table must have its own alias;
2.可能有重复值,使用distinct;
3.只找m_content中包含‘@’的,使用LIKE '%@%';
4.像这样的语句不能执行:select * from table where id in (select id from table limit X)
例如,如下语句会报错:Error Code: 1235. This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
SELECT DISTINCT u_ch_id, m_contentFROM tableWHERE u_ch_id IN (SELECT u_ch_id FROM table GROUP BY u_ch_id ORDER BY COUNT(u_ch_id) DESC LIMIT 306) AND m_content LIKE '%@%'ORDER BY u_ch_id
修改后正确执行的查询语句如下:
SELECT DISTINCT u_ch_id, m_contentFROM tableWHERE u_ch_id IN (SELECT u_ch_id FROM (SELECT u_ch_id FROM table GROUP BY u_ch_id ORDER BY COUNT(u_ch_id) DESC LIMIT N) AS t) AND m_content LIKE '%@%'ORDER BY u_ch_id
二、导出到csv文件中,每一条记录格式如下:(u_ch_id, m_content)
XXXXX,"XXXXX@XXXXX: XXXXXXXXXXX@XXXXXXX
三、合并u_ch_id相同的记录,并对m_content中@的用户去重,代码如下:
#include<iostream>#include<fstream> #include<string>using namespace std;int main(){int size;string str1, str2, infilename, outfilename;infilename = "XXXX.csv";outfilename = "XXX.csv";ifstream infile;ofstream outfile;infile.open(infilename);outfile.open(outfilename);while (infile.good()) {getline(infile, str1, '\n'); //用"\n"作为分隔符 size = str1.length();if (str2 != ""&&str2.substr(0, 11) != str1.substr(0, 11)){//cout << str2 << endl;outfile << str2 << endl;str2 = str1.substr(0, 11);}if (str2 == "")str2 = str1.substr(0, 11);for (int i = 0, j = 0; i < size; i++) {if (str1[i] == '@') {j = i + 1;while (str1[j] != ':'&&str1[j] != ' '&&str1[j] != '@'&&j <= size - 1) j++;if (j - i > 1 && str2.find(str1.substr(i, j - i)) == str2.npos) //该字段不在str2中str2 += str1.substr(i, j - i);}}}infile.close();outfile.close();return 0;}
完成~
0 0
- 从MySQL中提取数据并对字段进行字符串处理
- EXCEL从身份证号码中提取生日,并对当月生日的进行提示
- sql---截取字段中一段字符串并对该字符串进行替换
- 如何实现快速地从超大数据库中提取数据并进行相关的操作
- iOS 从字符串中提取所需要的目标字段
- Python 从MySQL 的表中提取字段名
- 从文本文件提取数据到数据库指定的字段中
- 使用字符串输入流从字符串中提取数据
- 从数据库中提取数据并注入到对象中
- JAVA中对字符串进行MD5处理
- 在vs2005.net中,用C#如何将xml文件转换成二进制数据存入数据库字段,并从数据库提取该字段转换成xml文件?
- C#程序从Excel表格中读取数据并进行处理
- java中对数据进行处理
- Mybatis中使用Handler对字段进行统一处理
- mysql中如何对text字段值进行追加更新
- 从字符串中提取标记
- 从字符串中提取整数
- 从字符串中提取数字
- 关于Logistic Regression、Softmax Loss和Cross-entropy的随笔
- 51单片机智能小车开<一>
- java记录三
- 第7章、关系数据库持久性与记录和Squeryl
- 分书问题
- 从MySQL中提取数据并对字段进行字符串处理
- 限制文本框或文本域只能输入数字、中文和英文等
- Qt第一个程序 HelloWorld
- Python生成随机数
- 不允许保存更改。您所做的更改要求删除并重新创建 以下表。您对无法重新创建的标进行了更改或者启用了“阻止保存要求重新创建 表的更改"选项。
- AOJ.866 飞越原野
- JavaScript滚轮实现动态加载页面
- 软件光栅化渲染器(二)
- 2. Python开发--基本数据类型