【发布时间】:2015-05-06 13:27:33
【问题描述】:
正如标题所说,我试图将string 附加到我表中的VARCHAR 列。
字符串类似于“ //string ”,后面将使用正斜杠将字符串分解为 PHP 中的数组。
我想知道如果列为空,in MYSQL 是否有办法执行 CONCAT(columnname, "//string") ,否则执行正常的 UPDATE ... SET ... WHERE 。通过这种方式,我将避免 第一个 我未来的爆炸字符串的值成为带有正斜杠的“//字符串”。
另外,上面我使用 bold 字符表示“in MYSQL”,因为我知道我可以先查询数据库(检查列是否为空)类似:
$q = $conn->dbh->prepare('SELECT columnname FROM tablename WHERE username=:user');
$q->bindParam(':user', $username);
$q->execute();
$check = $q->fetchColumn();
然后让 PHP 决定执行哪个操作:
if ($check != '') { // PERFORM A CONCAT }
else { // PERFORM AN UPDATE }
但这意味着由于 2 次数据库调用和更多 PHP 代码而浪费时间/资源。
谢谢。
【问题讨论】:
-
y 不是两者都 - 首先使用 where 条件应用更新,然后插入 where not in
-
用户是否已经存在该行?
-
是的,该用户的行已经存在.. 我说的是 INSERT,但我的意思是 UPDATE tablename SET columnname='//string' WHERE [..等等..]跨度>
-
我编辑了问题以澄清
标签: php mysql string concatenation