php - 在 SELECT 语句之后标记所有选定的列
问题描述
我正在随机选择一个表并希望标记选定的列。我有一个“导出”列,它是二进制的,默认设置为 0。选择它时,我希望它变为 1。我想将 SELECT 和 INSERT 语句结合起来,例如:
SELECT id, status, vorname, nachname, strasse, hnr, plz, ort, telefon1, telefon2
FROM adressen
WHERE (vorname LIKE ? OR nachname LIKE ?)
ORDER BY RAND() LIMIT ?
AND INSERT INTO adressen (exported) VALUES '1'
但这似乎不是正确的方法。select 语句可以正常工作,就像我希望的那样,但我不知道如何将每个选定行的导出列设置为 1。由于数据是随机选择的,我不能只在它之后执行插入语句,因为它不会匹配相同的选定数据。
解决方案
将结果保存在临时表中,然后使用update
:
CREATE TABLE temp_results AS
SELECT id, status, vorname, nachname, strasse, hnr, plz, ort, telefon1, telefon2
FROM adressen
WHERE (vorname LIKE ? OR nachname LIKE ?)
ORDER BY RAND()
LIMIT ?;
然后:
update adressen a join
temp_results r
on a.id = r.id
set exported = 1;
注意:这假设它id
是唯一的。如果不是,请使用表上的主键。
我还怀疑您的查询可能需要类似exported = 0
.
推荐阅读
- javascript - 如何在 tensorflow.js 中格式化输入数据?
- powerbi-desktop - 根据日期过滤器动态访问上一行
- powershell - 如何在powershell的一个变量中捕获stdout和stderr?
- python - 在 Outlook 正文中搜索文本,然后为文本所在的行创建一个变量
- r - 根据您选择的日期和代码删除列
- csv - 当 CSV 在标题列中有空间时,ADF 复制活动无法将 CSV 复制到 Parquet
- json - 如何在 linux cli 中针对 metaschema 验证 json 模式
- c# - .Net Core,带有 TLS 的 docker 环境中的 Identity 4 服务器
- image - 使用fisherface进行人脸检测和人脸识别
- python - 熊猫, 情节, 散点图