MySQL:查询中的符号

Gyt*_*mas 2 php mysql sql

我最近注意到MySQL查询中使用了几个我以前从未见过的奇怪符号.我从来没有使用它们,但我试图理解它们的含义.我没有找到任何关于此的信息,因为我不知道它们是如何被称呼的.

比方说,我有这张桌子:

id  | city | population 
250 | Carlisle | 75305
Run Code Online (Sandbox Code Playgroud)
  1. 这是什么|?它的输出是什么?

UPDATE cities SET population = population | 5 WHERE id = 250

  1. 更复杂的情况.

UPDATE cities SET population = population & ~2 | 6 WHERE id = 250

  1. 用"where"子句查询.这是什么WHERE子句?选择哪些行?

SELECT * FROM cities WHERE population & 2 > 0

  1. INSERT INTO中的多个值通过PHP查询.那些%s和%u值是多少?如何知道%s或%u是否应该被置于查询中?为什么我应该使用这个而不是直接在VALUES区域中放置值的简单查询?

sprintf("INSERT INTO cities (id, city, population) VALUES ('%s', '%u', '%s')", $id, $city, $population);

谢谢你的答案.

DNT*_*DNT 6

您提到的奇怪符号是按位运算符,您可能需要查看此处以获取更多信息.

%s,%u等是PHP格式规范.有关完整信息看这里.

您当然可以在PHP中创建一个字符串,并将值直接放入VALUES子句中.格式说明符可以帮助提醒相应的数据库列是什么类型.

您的示例也可以写为:

$query = "INSERT INTO cities (id, city, population) VALUES ('$id', '$city', '$population')";
Run Code Online (Sandbox Code Playgroud)