我有一个名为“number”和“form”的2个字段的数据库,需要更改一些字段。
我在excel中有一个列表,其值为1234.5,1233.7,其中1234是数字,5是表格中的表格编号。
是否可以执行以下操作:
$sql = "UPDATE `table` SET `field`='value' WHERE `number` IN (1234,1233) AND `form` IN (5,7)";
我看到的第一个问题是,当我有两个相同但不同的“形式”数字的“数字”时。
或者我可以这样做:
$sql = "UPDATE `table` SET `field`='value' WHERE CONCAT(number,'.',form) IN (1234.5,1233.7)";
有没有其他方法可以解决这个问题?
感谢。
答案 0 :(得分:0)
我不确定你想要完成什么,但听起来数字会有所不同。尝试找到“。”的POSITION()。在号码。然后,对这些位置执行SUBSTRING()。它看起来像这样:
$sql =
"UPDATE `table`
SET `field`='value'
WHERE number = SUBSTRING(input, 1, POSITION('.', input) - 1)
AND form = SUBSTRING(input, POSITION('.', input) + 1)";
以下代码将检查“。”之前的数字,然后检查“。”之后的表格。
答案 1 :(得分:0)
感谢Marc B
$sql = "UPDATE `table` SET `field`='value' WHERE CONCAT(number,'.',form) IN ('1234.5','1233.7')";
完成工作,只需要IN(' 1234.5' 1233.7')而不是IN(1234.5,1233.7)
感谢您的回复!