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

时间:2012-08-10 11:54:23

标签: 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')");
}

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

2 个答案:

答案 0 :(得分:6)

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

您应该考虑规范表格。

而不是一个包含列的表:

cvapp: id | img_path | namel1 | namel2 | namel3

考虑将其更改为两个表:

cvapp: id | img_path
names: id | cvapp_id   | name

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

SELECT name
  FROM cvapp INNER JOIN names on cvapp.id = names.cvapp_id
 WHERE <condition>

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

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");

答案 1 :(得分:0)

您可以尝试自我加入并搜索表格列