mysql - 如何在MySQL表中查找特定列名并清除结果?

标签 mysql pdo prepared-statement

我正在尝试执行 PHP/MySQL 查询以对单个记录执行以下操作:

  1. 查找 users 表中所有以“_abc”结尾的列名
  2. 清除单个记录(即 user_id)的这些字段
  3. 保留剩余列中的数据

我以前从未对数据库信息模式做过任何事情,所以任何帮助都会很棒!

类似于...?

$sth = $dbh->prepare("DESCRIBE users
                      WHERE column_name LIKE '_abc'
                      AND id = $user_id");

$sth->execute();   

最佳答案

SELECT column_name
FROM information_schema.columns
WHERE table_schema = 'db_name'
AND table_name = 'users'
AND column_name like '%_abc';

然后在更新语句中使用返回的列名称

update users 
set col1_abc = null, col2_abc = NULL
where id = $user_id

关于mysql - 如何在MySQL表中查找特定列名并清除结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13108833/

相关文章:

MySQL 将两列连接到一列上

php - 使用 PDO 登录后显示个人资料页面

php - 选择带有特殊字符 (ó) 的列名称

JavaPreparedStatement删除查询: Show Number of Rows Deleted?

php - 在 mySQL 数据库中存储时间范围并与当前时间进行比较

java - 在 JSF 中构建简单的事务

php - 如何将以下 INSERT 转换为准备好的语句以使其安全?

mysql - 准备Sql语句并存储在变量中

php - 在共享相同 wp_users 和 wp_usermeta 表的两个 Wordpress 安装之间同步所有用户角色。

php - PDO 绑定(bind)日期 MYSQL - 如何传递日期?