更新SQL表中的所有字段

问题描述:

我很少使用SQL并且有我需要解决的独特问题。我有一个名为“j17_users”的表,有不同的列,其中两个是“名称”和“用户名”。有数百行数据。更新SQL表中的所有字段

我需要改变 “名” 的内容是相同的 “用户名”

例如,前:

name: Jon Smith 
username: sql_nub 

后:

name: Sql_nub 
username: sql_nub 

好了,你们中的一些人可能已经注意到在上面的例子中第一个字母变成了大写字母。如果我能在剧本中发生这种情况,也可以获得奖励积分。如果这是不可能的不如这样吧..

+0

这是一个基本的SQL查询来解决,有什么困难吗?为什么你的问题是PHP标记? – Skrol29 2012-03-27 07:30:16

首字母大写:

UPDATE j17_users SET name = CONCAT(UCASE(MID(username,1,1)),MID(username,2)) 
+0

干杯队友,工作做得很好。 – 2012-03-27 08:12:13

+0

谢谢!现在你提到的那些“奖励积分”在哪里? :P jk – Pieter888 2012-03-27 09:27:28

update YOURTABLENAME set name=username 

我没有mysql的专家,但我会考虑这样做会抓住最左边的字符(MS SQL Server中它是“左”的功能的功能,提供参数长度为1),大写(在MSSQLServer中该函数称为UPPER),然后将其附加到用户名字段的其余部分。如果没有人给你答案(我怀疑),请在MySQL中查找相应的函数并更新上面的查询。

所以MS SQL Server查询将大约如下所示:

UPDATE YOURTABLENAME set name = UPPER(LEFT(username, 1)) + RIGHT(username, LEN(username)-1) 
+0

“正确的功能需要2个参数” - 您需要从正确的功能中删除“1”。我不能做到这一点作为编辑,因为编辑至少需要6个字符... – GarethD 2012-03-27 07:43:01

+0

谢谢,虽然这是一个普遍的想法,但问问题的人不会使用声明:) – Eugene 2012-03-27 09:07:22

尝试使用此

Update j17_users set name = username 
+0

这是有效的,有一些窥视指出如何利用资本。欢呼 – 2012-03-27 08:15:30

尝试此字段设置为另一场价值

Update j17users set name = username 
+0

工作,有几个窥视指出如何利用。欢呼 – 2012-03-27 08:15:05

这是我要使用的SQL。这是非常明确的

UPDATE j17_users SET name = 'sql_nub' WHERE name='John Smith' 

还是有点不太明确

UPDATE j17_users SET name = username WHERE name='John Smith' 
+0

不是我一直在寻找..没关系,虽然它已被回答 – 2012-03-27 08:12:38

尝试:

UPDATE j17_users set name = CONCAT(UPPER(LEFT(username, 1)), LOWER(SUBSTRING(username, 2))) where name not like username; 
+0

干杯朋友,这也适用。虽然有一个问题 - 如果用户名已经是相同的,它将不会使名称大写(如大小写不敏感) – 2012-03-27 08:14:31

Update j17_users set name = 
CONCAT(UCASE(Left(username,1)),Right(username,Length(username)-1)) 
+0

语法错误 - 缺少a)..正确的想法寿! – 2012-03-27 08:13:14

+0

谢谢 - 抱歉打字不好 – 2012-03-27 08:25:10