2012-03-27 106 views
1

我很少使用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

回答

2

首字母大寫:

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

0
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

1

嘗試使用此

Update j17_users set name = username 
+0

這是有效的,有一些窺視指出如何利用資本。歡呼 – 2012-03-27 08:15:30

0

嘗試此字段設置爲另一場價值

Update j17users set name = username 
+0

工作,有幾個窺視指出如何利用。歡呼 – 2012-03-27 08:15:05

0

這是我要使用的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

0

嘗試:

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

0
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