Php 在SELECT语句之后标记所有选定列

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

我正在随机选择一个表,并希望标记所选列。我有一个“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() 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;