我需要MySQL查询的帮助

时间:2009-11-18 23:41:02

标签: mysql

好的,我的mysql查询浏览器中有一个表,如下所示:

NAME:         Jobs:

Kate          Contractor
John          Janitor
Bob           Writer
Don           Waitress

假设我要将凯特的工作替换为艺术家。我将如何做这个MySQL查询。我知道它涉及INSERT INTO thingy,但我不太确定。

6 个答案:

答案 0 :(得分:5)

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

请注意,如果在网络应用程序中使用它,则没有正确参数化,如果它暴露在网络上,也不会以任何方式证明其不被恶意使用。

'Kate'也不是唯一的标识符,因此应该有一个主键(无论什么类型)用于从您的表中识别特定的'Kate',此时查询被修改为:

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

答案 1 :(得分:2)

要进行替换,您需要唯一标识要替换的数据库行。通常有一个ID列可以做到这一点。你的桌子有一张吗?

您使用UPDATE thingy而不是INSERT INTO thingy来更改现有数据。

如果数据库中只有一个Kate,你可以这样做:

UPDATE my_table_name SET Jobs ='Artist'WHERE NAME ='Kate'

如果您有ID列(其中999需要替换为Kate的实际ID),您想要将ID = 999替换为NAME ='Kate',否则名为Kate的所有人都将变成艺术家。

编辑:

如果你让用户直接输入这个免费表格,那么Ricebowl就有一个好处。他们可以输入对SQL有特殊意义的字符,并对数据库执行非常糟糕的操作。首先了解基础知识,然后花点时间阅读有关如何防止“SQL注入”攻击的信息。

这一切都用我最喜欢的漫画来说明: alt text

(有关更多讨论,请参阅source blog

答案 2 :(得分:0)

看一下mysql update syntax

答案 3 :(得分:0)

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

答案 4 :(得分:0)

UPDATE'JobsTable'SET'Jobs'=“Artist”WHERE'Name'=“Kate”

答案 5 :(得分:0)

另一种方式,不要忘记这个功能

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

当您不知道主键“Kate”是否存在时,您不必编写

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

它变得更快更简单!