我有一个表,其中有一个名为ssn的int列和一个名为male的列。
现在,我想根据ssn列中倒数第二位的奇数或偶数,用1或0更新阳性列。
$sql = "SELECT * FROM db";
$result = $DBH->prepare($sql);
$result->execute();
foreach($result as $row) {
$male = $row['ssn'];
$male = substr($male, -2, 1);
if ( $male & 1 ) {
$gender = 1;//odd
}else
{
$gender = 0;};
$results= $DBH->prepare("UPDATE loandb_enkatsvardb SET male = $gender ")or die(mysql_error());
$results->execute();
我在长时间加载后收到的错误是"内部服务器错误"。
我还尝试了"重复时插入忽略",无论ssn列包含什么,它都只在male列中保存"1"。
干杯
WHERE unique_id = id_value
形式。
但是,与其为所有的获取和所有的单独更新而烦恼,你可以用一句话来更有效地完成同样的事情:
UPDATE loandb_enkatsvardb SET male = SUBSTR(ssn,-2,1) MOD 2