我希望从table2向table1插入数据,其中table2中的数据与table3中的值相乘。
table1和table2具有相同的列(id,rangking,status,access,facility,popular)(id是自动增量) table2有数据:
id |咆哮|状态|访问|设施|普及
1 | 9 | 4 | 2 | 4 | 6
2 | 4 | 5 | 1 | 2 | 7
3 | 5 | 8 | 5 | 3 | 4
table3有数据:
id |值
c2 | 0.2
c3 | 0.5
c4 | 0.1
c5 | 0.3
$sql = mysqli_query ($koneksi, "SELECT value
FROM table3 WHERE id ='c2'") or die(mysqli_error($koneksi));
$c2 = mysqli_fetch_array($sql);
$sql = mysqli_query ($koneksi, "SELECT value
FROM table3 WHERE id ='c3'") or die(mysqli_error($koneksi));
$c3 = mysqli_fetch_array($sql);
insert into table1 (rangking,status,access,facility,popularity)
SELECT (rangking*$c2['value'] as Rank,status *$c3['value'] as Stat,access,facility,popularity) FROM table2
从那个查询我发现错误,有什么帮助吗?
答案 0 :(得分:1)
您选择了一个名为insert into table1 (a2,a3,a4,a5)
SELECT (a2*$c2['value'] as A2,a3,a4,a5) FROM table2
的列,然后您应该访问$ c2中的值(并且在select中不需要别名(用于插入/选择值按位置分配)
$sqlTest = mysqli_query ($koneksi, "insert into table1 (a2,a3,a4,a5)
SELECT (a2*$c2['value'] as A2,a3,a4,a5) FROM table2") or die(mysqli_error($koneksi));
...
UPDATE my_table SET my_col= replace(my_col,'http://','') where not regexp_like(my_col,'*blibli*')
答案 1 :(得分:0)
您可以使用联接来保存多个查询:
INSERT INTO table1 (a2, a3, a4, a5)
SELECT table1.a2 * table3.value AS a2, table1.a3, table1.a4, table1.a5
FROM table1
INNER JOIN table3
ON table3.id = :id
:id
是一个命名参数,您可以将其绑定到'c2'
的值(或手动插入,具体取决于它是否是用户输入)。
我在table3.id = :id
中使用了ON
,因为这肯定会将结果绑定到所选的行,但是如果你有一个正确的关联/外键,你会想要使用它。< / p>
将来,将列命名为有意义的内容会有所帮助,而不仅仅是a1
,a2
等。