Php 在SELECT语句之后标记所有选定列
我正在随机选择一个表,并希望标记所选列。我有一个“exported”列,它是二进制的,默认设置为0。选择它时,我希望它成为1。我考虑组合一个SELECT和INSERT语句,如:Php 在SELECT语句之后标记所有选定列,php,mysql,sql,Php,Mysql,Sql,我正在随机选择一个表,并希望标记所选列。我有一个“exported”列,它是二进制的,默认设置为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() LIM
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。由于数据是随机选择的,因此我不能在数据之后执行insert语句,因为它与所选的数据不匹配。将结果保存在临时表中,然后使用
更新
:
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 ?;
然后:
注意:这假设id
是唯一的。如果不是,请使用表上的主键
我还怀疑您的查询可能需要类似于exported=0
的内容
update adressen a join
temp_results r
on a.id = r.id
set exported = 1;