Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 插入和更新sql表_Php_Mysql_Sql - Fatal编程技术网

Php 插入和更新sql表

Php 插入和更新sql表,php,mysql,sql,Php,Mysql,Sql,我在数据库中有两个表:users和user\u settings。 在users表中,我的主键列为user\u id,其他列如first\u name和last\u name。 在user\u setting表中有4列:user\u id、locale、value\u name和value。存在不同的user\u id记录,某些user\u id可能出现多次,也可能不会出现一次。 我想在user\u setting表中添加每个user\u id的记录,其中value\u name等于'first

我在数据库中有两个表:
users
user\u settings

users
表中,我的主键列为
user\u id
,其他列如
first\u name
last\u name

user\u setting
表中有4列:
user\u id
locale
value\u name
value
。存在不同的
user\u id
记录,某些user\u id可能出现多次,也可能不会出现一次。

我想在
user\u setting
表中添加每个
user\u id
的记录,其中
value\u name
等于'first\u name',
valee
来自
users
first\u name
列。对
姓氏
也执行同样的操作。

换句话说,我想在
locale
列、
value\u name
value
列中为每个
user\u id
添加
user设置
表:(
users
表中的'en\u-us',first\u-name',first\u-name列)和(
users
表中的'en\u-us',last\u-name',last\u-name列).
例如,在
users
表中,如果有一个用户id:10,名字为'john',姓氏为'smith',我想将这两条记录添加到
user\u设置
表中:
(10,'en_US','first_name','john')和(10,'en_US','last_name','smith'))


此任务的查询是什么?非常感谢

一个非常简单的解决方案就是选择所需的字段并将它们插入到另一个表中

INSERT INTO
  user_Setting (
    user_id,
    locale,
    value_name,
    value
  )

SELECT
  user.id,
  'en_us',
  'first_name',
  user.first_name
FROM
  user

UNION ALL

SELECT
  user.id,
  'en_us',
  'last_name',
  user.last_name
FROM
  user
;

这假设此表中已经没有此类记录,因此在运行
INSERT

之前无需进行任何检查。这似乎是一个精心设计的示例/问题-偶然分配?你能展示一下到目前为止你做了什么吗?Stackoverflow不是一个免费的编码网站。向我们展示您迄今为止尝试过但未成功的内容,然后我们可以帮助您用户设置表中是否已有此类记录?或者您可以天真地插入这些行而不检查它们是否已经存在?