为什么我们不能在MySQL中使用*关键字进行连接?
SELECT concat(*) FROM table
要么
SELECT group_concat(*) FROM table
还有其他方法可以访问列中的值而无需显式使用列名吗?
要连接表中的所有列,不能使用*
关键字,但是需要显式列出所有列:
SELECT CONCAT(col1, col2, col3, ....)
FROM yourtable
或者您可能想使用CONCAT_WS
它将跳过空值的方法:
SELECT CONCAT_WS(',', col1, col2, col3, ....)
FROM yourtable
如果您不想手动指定所有列名,则可以使用动态查询。该查询将返回表的所有列名称:
SELECT `column_name`
FROM `information_schema`.`columns`
WHERE `table_schema`=DATABASE()
AND `table_name`='yourtable';
并使用GROUP_CONCAT,您可以获得所有列名称的列表:
GROUP_CONCAT(CONCAT('`', column_name, '`'))
用逗号分隔的格式引用:
`col1`,`col2`,`col3`,`col4`,...
因此,现在我们有了所有可以动态创建查询的元素:
SELECT
CONCAT(
'SELECT CONCAT_WS(\'\',',
GROUP_CONCAT(CONCAT('`', column_name, '`') ORDER BY column_name),
') AS all_columns FROM yourtable;')
FROM `information_schema`.`columns`
WHERE `table_schema`=DATABASE()
AND `table_name`='yourtable'
INTO @sql;
该查询会将@sql字符串设置为类似以下内容:
SELECT CONCAT_WS('', col1, col2, col3, ....) AS all_columns FROM yourtable
这段代码将执行它:
PREPARE stmt FROM @sql;
EXECUTE stmt;
请看这里的小提琴。
问题内容: 我一直在使用SQL Server,现在正在将MySQL用于一个项目。使用SQL Server,我们的开发人员可以在知道主机,用户名和密码的情况下连接到本地计算机上的远程数据库。但是,使用MySQL,要使开发人员能够从其本地计算机访问,我一直必须登录MySQL并执行: 开发人员机器的IP地址在哪里。当然,如果他们更改网络,则必须再次执行。有没有一种方法可以允许所有远程连接(如我在SQL
内连接,显示两个表中有联系的所有数据; 左链接,以左表为参照,显示所有数据,右表中没有则以null显示 右链接,以右表为参照显示数据,,左表中没有则以null显示
本文向大家介绍MySQL 的内连接、左连接、右连接有什么区别?相关面试题,主要包含被问及MySQL 的内连接、左连接、右连接有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 内连接关键字:inner join;左连接:left join;右连接:right join。 内连接是把匹配的关联数据显示出来;左连接是左边的表全部显示出来,右边的表显示出符合条件的数据;右连接正好相反。
主要内容:我是该用 MySQLi ,还是 PDO?,MySQLi 和 PDO 连接 MySQL 实例,MySQLi 安装,PDO 安装,连接 MySQL,实例 (MySQLi - 面向对象),实例 (MySQLi - 面向过程),实例 (PDO),关闭连接,实例 (MySQLi - 面向对象),实例 (MySQLi - 面向过程),实例 (PDO)PHP 5 及以上版本建议使用以下方式连接 MySQL : MySQLi extension ("i" 意为 improved) PDO (PHP D
主要内容:左连接,右连接在《 MySQL内连接》一节我们了解了 MySQL 的内连接。内连接的查询结果都是符合连接条件的记录,而外连接会先将连接的表分为基表和参考表,再以基表为依据返回满足和不满足条件的记录。 外连接可以分为左外连接和右外连接,下面根据实例分别介绍左外连接和右外连接。 左连接 左外连接又称为左连接,使用 LEFT OUTER JOIN 关键字连接两个表,并使用 ON 子句来设置连接条件。 左连接的语法格式
在《 MySQL交叉连接》一节中我们了解了 MySQL 的交叉连接,本节主要介绍多表查询的另一种方式——内连接。 内连接(INNER JOIN)主要通过设置连接条件的方式,来移除查询结果中某些数据行的交叉连接。简单来说,就是利用条件表达式来消除交叉连接的某些数据行。 内连接使用 INNER JOIN 关键字连接两张表,并使用 ON 子句来设置连接条件。 如果没有连接条件,INNER JOIN 和