sql >> Database teknologi >  >> RDS >> Mysql

Tilføj 1 til et felt

Jeg bliver downmodded for dette?

$sql = "UPDATE skills SET level = level+1 WHERE id = $id";
$result = $db->sql_query($sql);
$db->sql_freeresult($result);

I Teifions specifikke tilfælde angiver phpBB DDL det pågældende felt som IKKE NULL, så der er ingen fare for at øge NULL.

I det generelle tilfælde bør du ikke bruge NULL til at repræsentere nul. Forøgelse af NULL bør giv svaret NULL. Hvis du er den slags vildledte udvikler, der tror NULL=0, så gå væk fra tastaturet og find et andet tidsfordriv, du gør bare livet hårdt for os andre. Selvfølgelig er dette computerindustrien, og hvem er vi til at sige, at du tager fejl? Hvis du ikke tager fejl, så brug

$sql = "UPDATE skills SET level = COALESCE(level,0)+1 WHERE id = $id";

...men lad os se det i øjnene:du tager fejl. Hvis alle starter på niveau 0, skal din DDL inkludere

level INT DEFAULT '0' NOT NULL

hvis programmørerne glemmer at indstille det, når de opretter en post. Hvis ikke alle starter på niveau 0, så spring STANDARD over og tving programmøren til at angive en værdi ved oprettelsen. Hvis nogle mennesker er over niveauer, for hvem det er meningsløst at have et niveau, så har det heller ingen betydning at tilføje et til deres niveau. I så fald skal du slippe NOT NULL fra DDL.



  1. Laravel 4:Hvordan anvender man en WHERE-betingelse på alle forespørgsler i en veltalende klasse?

  2. Hvordan kan jeg returnere de numeriske boxplot-data for alle resultater ved hjælp af 1 mySQL-forespørgsel?

  3. inden for gruppe sorterer i mysql

  4. Dette resultat er et resultat, der kun er fremad, og at kalde rewind() efter at have bevæget sig fremad understøttes ikke - Zend