2009-11-18 50 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 

它变得更快更简单!