2009-11-18 53 views
0

好吧,我有一個表,幫助像如下圖所示:我需要在我的MySQL查詢瀏覽器中的MySQL查詢

NAME:   Jobs: 

Kate   Contractor 
John   Janitor 
Bob   Writer 
Don   Waitress 

比方說,我想取代凱特的工作是藝術家。我將如何做到這一點MySQL查詢。我知道它涉及INSERT INTO thingy,但我不確定。

+4

請不要大喊。所有大寫字母和感嘆號都是網上的喊聲。 – 2009-11-18 23:42:46

+2

@Eric J .;同意,並編輯。 – 2009-11-18 23:43:56

+0

對不起傢伙:(>。< – lab12 2009-11-18 23:45:01

回答

5
UPDATE table_name SET Jobs="job_type" WHERE name="Kate"; 

銘記,這是不正常參數化使用在網絡應用程序中,如果它暴露在網絡中,也不能以任何方式防止惡意使用。

也不是「Kate的一個唯一的標識符,所以應該有一個主鍵(任何類型),用於從表格中識別特定的「凱特」,在該點處的查詢被修改爲:

UPDATE table_name SET Jobs="job_type" WHERE primary_key_name="unique_identifier_for_user"; 
2

要做替換,您需要唯一標識要替換的數據庫行。通常有一個ID列來做到這一點。你的桌子有一個嗎?

您使用UPDATE thingy而不是INSERT INTO thingy來更改現有數據。

如果只有一個凱特在數據庫中,你可以做這樣的事情:

UPDATE MY_TABLE_NAME SET喬布斯=「藝術家」 WHERE name =「凱特」

要替換NAME =「凱特'如果你有一個ID列(其中999需要被Kate的實際ID替換),那麼ID = 999,否則所有名爲Kate的人都會變成一個藝術家。

編輯:

Ricebowl有,如果你讓用戶進入這個直接自由形式的好點。他們可以將具有特殊含義的字符放入SQL中,並對數據庫執行非常糟糕的操作。首先了解基礎知識,然後花一些時間閱讀有關如何防止「SQL注入」攻擊的信息。

這整個事情是我最喜歡的漫畫之一所示: alt text

(而看到source blog更多的討論)

+0

爲什麼,謝謝你,sir =]另外,一個-direct-連接到xkcd地帶的源代碼:http:// xkcd .COM/327 / – 2009-11-18 23:54:43

0
UPDATE jobs_table SET `Jobs` = 'Artist' WHERE `name` = 'Kate' 
0

UPDATE ' JobsTable ' SET '喬布斯' = "藝術家" WHERE '名稱' = "凱特"

0

另一種方式,不要FORET有關此功能

`REPLACE INTO jobs_table (`Jobs`, `name`) ('Artist', 'Kate')` 

當你不知道,如果主鍵「凱特」的存在與否,你不必寫

$a = mysql_query("select * where jobs = 'Kate'") 
if($a) 
    update 
else 
    insert 

它變得更快更簡單!