
在MySql中提供了两个字符串的 *** 作函数:Concat,Concat_ws对于他们的介绍比较多,然而我们更多的需要使用到按列分组连接才能满足我们的需求,这里可以使用Group_concat来实现。
GROUP_CONCAT(expr)
完整句法如下: GROUP_CONCAT([DISTINCT] expr [,expr ]
[ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] [,col ]]
[SEPARATOR str_val])
这个函数在 MySQL 41 中被加入。函数返回一个字符串结果,该结果由分组中的值连接组合而成: mysql SELECT student_name,
- GROUP_CONCAT(test_score)
- FROM student
- GROUP BY student_name;ormysql SELECT student_name,
- GROUP_CONCAT(DISTINCT test_score
- ORDER BY test_score DESC SEPARATOR )
- FROM student
- GROUP BY student_name;
在 MySQL 中,你可以得到表达式结合体的连结值。通过使用 DISTINCT 可以排除重复值。如果希望对结果中的值进行排序,
可以使用 ORDER BY 子句。为了以倒序排序,可以在 ORDER BY 子句中用于排序的列名后添加一个 DESC (递减 descending) 关键词
。缺省为升序;这也可以通过使用 ASC 关键词明确指定。
SEPARATOR 是一个字符串值,它被用于插入到结果值中。缺省为一个逗号 (,)。
你可以通过指定 SEPARATOR 完全地移除这个分隔符。
在你的配置中,通过变量 group_concat_max_len 要以设置一个最大的长度。
在运行时执行的句法如下: SET [SESSION | GLOBAL] group_concat_max_len = unsigned_integer;
如果最大长度被设置,结果值被剪切到这个最大长度。
GROUP_CONCAT() 函数是一个增强的 Sybase SQL Anywhere 支持的基本 LIST() 函数。
如果只有一个列,并且没有其它选项被指定,GROUP_CONCAT() 是向后兼容有极大限制的 LIST() 函数。
LIST() 有一个缺省的排序次序。
如果分组的字符过长,可以对系统参数进行设置
1、先下载和安装MySQLDriverCS
2、在安装文件夹下面找到MySQLDriverdll,然后将MySQLDriverdll添加引用到项目中
3、参考代码:(个别引用非必须)
using System;
using SystemCollectionsGeneric;
using SystemComponentModel;
using SystemData;
using SystemDataOdbc;
using SystemDrawing;
using SystemLinq;
using SystemText;
using SystemWindowsForms;
using MySQLDriverCS;
namespace mysql
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
MySQLConnection conn = null;
conn = new MySQLConnection(new MySQLConnectionString("localhost", "inv", "root", "831025")AsString);
connOpen();
MySQLCommand commn = new MySQLCommand("set names gb2312", conn);
commnExecuteNonQuery();
string sql = "select from exchange ";
MySQLDataAdapter mda = new MySQLDataAdapter(sql, conn);
DataSet ds = new DataSet();
mdaFill(ds, "table1");
thisdataGrid1DataSource = dsTables["table1"];
connClose();
}
}
}
首先你正确安装了MYSQL的数据库驱动程序(mysql-connector-odbc-516-win32msi )
1在桌面上新建一个空的文本文件mysqltxt,重命名为mysqludl;
2双击这个mysqludl文件,打开“数据库连接属性”对话框,在“提供程序”页选择”Micrsoft Ole DB Provider for ODBC Drivers“, 点击下一步;
3在“连接”页的,"指定数据源"选择"使用连接字符串";
4点击“编译”,d出“选择数据源”,在“文件数据源”页中点击”新建“,在创建新数据源选择MYSQL的驱动程序”MySQL ODBC 51 Driver";
5点击“下一步”,点击"浏览",在”另存为“对话框中文件名称写入“mysql",点击”下一步“,点击”完成“;
6在"MySQL Connnettor/ODBC Data Source Configuration"对话框中按需求(如下图);
7点击“Test”,看连接是否成功,连接成功会有个”Connenction successful“提示框,需要更详细的设置点击“Details”,点击”OK“,设置完成;
8返回“数据库连接属性”对话框,点击“测试连接”,成功的话就是我们要的连接字符串。
下面是我本机测试的ADO连接字符串,服务器localhost,数据库meismon,用户名root,密码123456
Provider=MSDASQL1;Persist Security Info=True;Extended Properties="Driver=MySQL ODBC 51 Driver;SERVER=localhost;UID=root;PWD=123456;DATABASE=seismon;PORT=3306;COLUMN_SIZE_S32=1"
注:关闭“数据库连接属性”后再次双击mysqludl打开该对话框,会因为密码丢失问题点击“测试连接”会连接不上,把“数据库连接属性”对话框上的密码等补全就可以了,用文本方式打开mysqludl文件就是完整的连接字符串。
可以使用MySQL推出的MySQLConnector/Net组件,该组件是MySQL为ADONET访问MySQL数据库设计的NET专用访问组件,完成该组件后,需要在项目中引用这个组件,之后在程序中引用命名空间MySqlDataMySqlClient,即可开始进行连接MySQL数据库的 *** 作了,示例如下:
protected voidMySqlCon()
{
//数据库连接字符串跟连接SQLSERVER没有区别
string constr = "server=localhost;UserId=root;password=root;Database=test";
//下面使用MySql Connector/net提供的专用对象
MySqlConnection mycon = new MySqlConnection(constr);
myconOpen();
MySqlCommandmycmd = new MySqlCommand("select from users", mycon);
MySqlDataReader myreader = mycmdExecuteReader();
while (myreaderRead())
{
if (myreaderHasRows)
{
MessageBoxShow(myreaderGetString("email") );
}
}
myreaderClose();
myconClose();
String mysqlStr = "Database=test;Data Source=127001;User Id=root;Password=root;pooling=false;CharSet=utf8;port=3306";
MySqlConnection mysql = new MySqlConnection(mysqlStr);
或者
string MyConString = "DRIVER={MySQL ODBC 351 Driver};" +
"SERVER=localhost;" +
"DATABASE=inv;" +
"UID=root;" +
"PASSWORD=root;" +
"OPTION=3";
OdbcConnection MyConnection = newOdbcConnection(MyConString);
using MySQLDriverCS;
// 建立数据库连接MySQLConnection DBConn;DBConn = new MySQLConnection(new MySQLConnectionString("localhost","mysql","root","",3306)AsString);DBConnOpen();
// 执行查询语句MySQLCommand DBComm;DBComm = new MySQLCommand("select Host,User from user",DBConn);
// 读取数据MySQLDataReader DBReader = DBCommExecuteReaderEx();
// 显示数据try{while (DBReaderRead()){ConsoleWriteLine("Host = {0} and User = {1}", DBReaderGetString(0),DBReaderGetString(1));}}finally{DBReaderClose();DBConnClose();}
//关闭数据库连接DBConnClose();
在Webconfig中设置:
/PS/
Use Procedure Bodies:存储过程不执行语句。默认为真,如果要执行存储过程,请将其设置为false
Pooling=true; 表示启用连接池。系统默认为启用。如果不启用的话系统在读取数据库中数据时会反复在内存中启用连接,然后注销。经过我测试过。开启连接池性能是未开启连接池性能的10倍!
Max Pool Size=50; 最大连接池个数。系统默认为100。可以根据情况设置参数!
以上就是关于MySql 中如何连接一列字符串全部的内容,包括:MySql 中如何连接一列字符串、c#连接mysql的字符串 应该怎么写、如何正确获取MYSQL的ADO连接字符串等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)