196 mysql中如何查出除了某个字段外的所有字段的值

本文介绍了一种在数据库操作中批量选取除特定字段外所有字段的方法,通过使用GROUP_CONCAT和information_schema.COLUMNS表,可以高效地获取所需字段并进行查询。

比如某个表有20个字段,你还想看19个字段,手写又太麻烦,怎么办?

总共分两步:

首先,要先查出除了这个字段的其余字段,并用','分割

SELECT
       GROUP_CONCAT( column_name SEPARATOR ',' ) 
FROM
        information_schema.COLUMNS 
WHERE
        column_name <> '你不想要的字段' 
        AND table_name = '表名' 
GROUP BY
        table_name

第二步:

第一步查出来的结果就是你想看的字段,然后:

select  第一步查出来的结果 from 表名

MySQL中,更新表中某个字段有多种方法,下面结合参考引用为你详细介绍: ### 单表更新单个字段为固定 可使用基本的`UPDATE`语句,例如将`person`表中所有用户的`nickname`字段更新为`'新昵称'`: ```sql UPDATE person SET nickname = '新昵称'; ``` ### 用一个表更新另一个表的单个字段 若要将`person`表中`mobile`字段更新为`login`表中的`account`字段,可通过表关联来实现: ```sql UPDATE person INNER JOIN login ON person.id = login.person_id SET person.mobile = login.account; ``` 这里使用`INNER JOIN`基于`person`表的`id`和`login`表的`person_id`进行关联,然后把`login`表的`account`赋给`person`表的`mobile`字段,此方法引用自引用[1]和引用[3]。 ### 批量修改表中字段数据成不同的 若要批量更新`mytable`表中`myfield`字段为不同,可使用`CASE WHEN`语句。示例代码如下: ```php <?php $ids_values = array( 1 => 11, 2 => 22, 3 => 33, 4 => 44, 5 => 55, 6 => 66, 7 => 77, 8 => 88 ); $ids = implode(',', array_keys($ids_values)); $sql = "UPDATE mytable SET myfield = CASE id "; foreach ($ids_values as $id => $myvalue) { $sql .= sprintf("WHEN %d THEN %d ", $id, $myvalue); } $sql .= "END WHERE id IN ($ids)"; echo $sql.";<br/>"; ?> ``` 将上述代码运行后会生成SQL语句,执行该语句就可批量更新不同`id`对应的`myfield`,此方法引用自引用[2]。 ### 更新表中字段为该表另一个字段处理后的 假设要更新`print`表的`biz_date`字段,使其为`code`字段截取前8位(年月日),可使用如下SQL语句: ```sql UPDATE print SET biz_date = LEFT(code, 8); ``` 此方法可用于把表中一个字段处理后的更新到另一个字段,引用自引用[4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

phpstory

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值