mysql,如果行存在增量值,则插入行不带键

时间:2013-08-22 19:38:54

标签: mysql

我正在尝试做一些对MySQL来说太复杂的事情

如果存在一行我想更新一个计数器,如果没有插入行......我做了一个搜索并发现了这个......

$query = "insert into TABLE 
(`id`, `item`, `count`, `option1`, `option2`) 
values 
('$cartName', '$sku', 1, '$option1', '$option2')
on duplicate key 
update count = count + 1";

但是我没有表中的键,因此“on duplicate key”不起作用,查询需要多个AND来根据id,item和2选项值检查行。

另外一件事是让mySQL根据项

返回所有计数值的计数

这是我目前(从搜索修改:),有谁知道如何将其减少为单个查询?

option1和option2是变量的,可以为null,这就是为什么2个if语句从AJAX调用,所以$ message用于更新javascript客户端。

$query = "update TABLENAME set count=count+1 where item='$item'";
if($option1) $query .= " AND option1='$option1'";
if($option2) $query .= " AND option2='$option2'";
$result = mysql_query($query) or die("Error:".mysql_error() );       

if (mysql_affected_rows()==0) {
    $query = "insert into $table11 (`id`, `item`, `count`, `option1`, `option2`) values ('$id', '$item', 1, '$option1', '$option2');";
    $result = mysql_query($query) or die("Error:".mysql_error() );
    }

//total count for all items with specific id
$query = "SELECT SUM(count) FROM TABLENAME WHERE id='$cartName'";
$result = mysql_fetch_row(mysql_query($query)) or die("Error:".mysql_error() );
$message = $result[0];

0 个答案:

没有答案