0

我正在使用 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')");
}

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

4

2 回答 2

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");
于 2012-08-10T11:57:56.883 回答
0

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

于 2012-08-10T12:01:02.237 回答