问题一、
直接写,是这样的:
INSERT INTO record_cc (`lname`, `mhid`, `type`, `mtname`, `reson`, `UpdateTime`) VALUES ('stb', '888', 1, 'ABC', '23#30', '2023-06-27 16:10:32');"
mtname 字段如果要从其它表取值,应该如何实现呢?
(如这个错误的语句,应该怎么修改?)
INSERT INTO record_cc (`lname`, `mhid`, `type`, `mtname`, `reson`, `UpdateTime`) VALUES ('stbl', '888', '1',
(SELECT `AU` FROM chresult WHERE chresult.mhid = '888' LIMIT 1),
, '23#30', NOW())
问题二,是否可以在以上 INSERT 语句的基础上完成这样的拼接?
(我简化了相关字段,想看看是怎么样完成拼装的...)
INSERT INTO record_cc (`reson`) VALUES (xxx);
这个 xxx 的值,是
SELECT `AU` FROM chresult WHERE chresult.mhid = '888' LIMIT 1
+
'#'
+
SELECT `BU` FROM chresult WHERE chresult.mhid = '888' LIMIT 1
这样组装起来的,
想看看大家是怎么样做,可以避免多次查询,然后还要在本地程序运算完再写 mysql ,
现在开销太大,看看能不能一句就把数据库怼完
1
jcc 2023-06-27 16:50:17 +08:00 1
问题一,如果其他字段是固定的,你可以把它们按顺序拼接到 select 中,像这样
```sql INSERT INTO record_cc (`lname`, `mhid`, `type`, `mtname`, `reson`, `UpdateTime`) SELECT 'stbl', '888', '1', `AU`, '23#30', NOW() FROM chresult WHERE chresult.mhid = '888' ``` 问题二,可以使用 concat() 函数做拼接 |
2
liprais 2023-06-27 16:53:05 +08:00 1
建议看完文档再来问
1.就写个字面量的事 2.直接用 concat 完事 |
3
intersect 2023-06-27 16:53:46 +08:00 1
INSERT INTO record_cc (`lname`, `mhid`, `type`, `mtname`, `reson`, `UpdateTime`)
select 'stbl', '888', '1',`AU`, concat(`AU`,'#' ,`BU`), NOW() FROM chresult WHERE chresult.mhid = '888' LIMIT 1 |
4
pppguest3962 OP @liprais 也是奇怪,这个论坛是公开的,就一定是程序员来么,为什么要一个搞通信的人为了喝牛奶去研究一头奶牛的基因序列重组?谢谢。
|
5
liprais 2023-06-27 17:06:13 +08:00
@pppguest3962 你搞通信的更应该明白看文档的重要性,凭啥写个 sql 就要当伸手党?
|
6
pppguest3962 OP @liprais 您可以不回答的,为什么一定要按照您的标准去指示其他人?
|
7
liprais 2023-06-27 17:10:33 +08:00
@pppguest3962 “这个论坛是公开的” 原样还给你
|
8
pppguest3962 OP 几年都不用一次 MYSQL ,就临时解决一个问题,时态催得急,就谢谢大家了,不想再怼下去
|
9
istomyang 2023-06-27 19:14:57 +08:00
|