需要MYSQL查询才能在不同的列中插入值?

Asi*_*sim 0 php mysql

我正在使用Php将值插入MySQL表.

我想要做的是:有三列我必须检查.'namel1','namel2'和'namel3'.

条件:

  • 如果三列中的任何一列都不存在'$ name',则将值放入'namel1'.
  • 如果'namel1'中存在'$ name',则将值放在'namel2'中,如果'namel2'包含该值,则将其放入'namel3'.

我当前的MySQL查询插入名称和图像路径是我要修改它以满足上述条件:

$chk_img_db = mysql_query("select * from cvapptable where img_path='$cvh_myimg_url'");
if(mysql_num_rows($chk_img_db)<1) {
mysql_query("insert into cvapptable(namel1,img_path) values ('$name','$cvh_myimg_url')");
}
Run Code Online (Sandbox Code Playgroud)

我无法从网上获得任何解决方案.请帮忙.谢谢.

Seb*_*olm 6

在网上找到并不容易,因为这是你不应该自己进入的情况.

您应该考虑规范化表格.

而不是具有列的表:

cvapp: id | img_path | namel1 | namel2 | namel3
Run Code Online (Sandbox Code Playgroud)

考虑将其更改为两个表:

cvapp: id | img_path
names: id | cvapp_id   | name
Run Code Online (Sandbox Code Playgroud)

然后选择每个名称,您只需执行以下查询:

SELECT name
  FROM cvapp INNER JOIN names on cvapp.id = names.cvapp_id
 WHERE <condition>
Run Code Online (Sandbox Code Playgroud)

这样,您可以拥有任意数量的名称,并且插入新名称会更容易:

INSERT INTO names (cvapp_id, name) VALUES (56, "Name 1");
INSERT INTO names (cvapp_id, name) VALUES (56, "Name 2");
INSERT INTO names (cvapp_id, name) VALUES (56, "Name 3");
Run Code Online (Sandbox Code Playgroud)