我需要在表中的特定字段中添加两个不同的单词。
表是:
field1, field2 and field3
所以首先我需要选择我想要修改的记录:
SELECT * FROM MyTable where field3 = 1
假设结果是10条记录。
我现在有两个变量var1和var2
我现在需要将var1添加到表的field2的50%,将var2添加到其他50%
我该怎么做呢?
例子:
表:
id | field2 | field3
-----------------------------
1 hello 1
2 hello2 1
第1条第2条
从mytable中选择*字段3=1
将返回2个字段。。。
下一个
将String1插入到50%的结果中,并将String2插入字段2上的其他50%的结果中
输出应为:
id | field2 | field3
-----------------------------
1 String1 hello 1
2 String2 hello2 1
我不知道这是否适用于mysql,但我建议这样做(ms sql server语法):
update mytable
set field2 = case when ROW_NUMBER() over (order by id)%2 = 0
then 'var1' + field2
else 'var2' + field2
end
where field3 = 1
或者,如果您不希望更新表,而只选择以下值:
select field1
, case when ROW_NUMBER() over (order by 1d)%2 = 0
then 'var1' + field2
else 'var2' + field2
end as field2
, field3
where field3 = 1
它将var1添加到偶数行,将var2添加到奇数行。用你的变量替换var1和var2。
它的工作原理是取每个行号的模2,从而查看结果集的行号是偶数还是奇数。然后根据行号是偶数还是奇数,输入var1或var2。
获取更新的计数行。
select count(*) cnt
from MyTable
where field3 = 1;
并在php中将结果存储到变量$cnt中,同时计算范围之间的中间点。
$middle = ceil($cnt/2);
然后运行以下查询(当然不要忘记转义sql中传递的变量的值):
update MyTable a,
(SELECT @rownum:=0) b
set field2 = concat(field2, if((@rownum := @rownum+1) > $middle, '$var1', '$var2'))
where field3 = 1;
示例如下:
<?php
$conn = mysqli_connect('localhost', 'user', 'pass', 'dbtest');
$rs = mysqli_query($conn, "select count(*) cnt from MyTable where field3 = 1");
$row = mysqli_fetch_assoc($rs);
$cnt = $row['cnt'];
$middle = ceil($cnt/2);
$var1 = 'xxx';
$var2 = 'yyy';
mysqli_query(
$conn,
"update MyTable a,
(SELECT @rownum:=0) b
set field2 = concat(field2, if((@rownum := @rownum+1) > $middle, '$var1', '$var2'))
where field3 = 1
"
);
我想在我的“订单”表中添加一个名为“付款类型”的列。 以下是我迄今为止的迁移: 我希望payment_type保持当前在数据库中的所有记录的值“正常”。然而,不是为了将来的记录。我希望未来的记录没有默认值。我该怎么做呢?
我正在尝试添加一个自定义字段到忍者表单(第3.3节)。到处都找不到完整的例子。 仔细查看代码,似乎过滤器'ninja_forms_register_fields'可以起到作用,但我无法让它在任何地方运行。
我在XML中指定log4j2 logger的文件名,如下所示。一切正常,但我得到了错误 2017-09-06 16:54:33,496主要错误未知的对象"RlandAccessFileAppender的类型org.apache.logging.log4j.core.appender.RlandAccessFileAppender被忽略:尝试嵌套它在其中之一:["Appender","Logger"
问题内容: 我正在尝试创建一个使用MySQL表存储条目的简单消息系统(PHP)页面。我将在表中使用的列的粗略概述为: msg_id (主键,auto_increment) user_id (指向创建消息的用户的外键) 时间 (提供味精时间戳记的DATETIME条目) msg (包含味精的VARCHAR) 可访问的 (仅是一个int(1),0表示除用户本人可以读取msg之外没有其他人,而1则意味着其
我正在尝试使用ajax发送表单数据。我的索引页面记录是在使用ajax从远程页面获取后显示的。 下面是我的页面图片。 每个记录都有注释框,我想使用ajax将这些注释存储在数据库中。 下面是我的jquery 我在单击时使用了,因为这些记录是从远程页面加载的。我的表格在下面 现在当我点击帖子时,评论正在为最后一条记录工作。我需要发送ID号和文本区值到PHP页面更新在mysql,但两个评论都显示相同的记录
我正在使用entityMenager登录,并没事。