3

我正在尝试使用产品描述表,但我有一个头疼的问题......
我有一个方法 (php) 可以查找记录的 ID 键。如果不存在
与搜索条件的匹配项,它会尝试创建行并返回该 ID。

现在,SELECT 正在返回零行,但具有相同值的 INSERT 会引发重复错误。

SELECT `id`
FROM (`m3sandbox_product_description`)
WHERE `product_id` =  '403466'
AND `company_id` =  '5'
AND `value` =  'TERMINAL, FEMALE DISCONNECT, 6.3MM, RED; Connector Type:Female Disconnect; Insulator Color:Red; Termination Method:Crimp; Stud/Tab Size:6.35mm x 0.81mm; Wire Size (AWG):22AWG to 16AWG; Contact Material:Copper; Contact Plating:Tin ;RoHS Compliant: Yes'
LIMIT 1

.

INSERT INTO `m3sandbox_product_description`  (`product_id`, `company_id`, `value`, `datetime_created`)
VALUES  ('403466', '5', 'TERMINAL, FEMALE DISCONNECT, 6.3MM, RED; Connector Type:Female Disconnect; Insulator Color:Red; Termination Method:Crimp; Stud/Tab Size:6.35mm x 0.81mm; Wire Size (AWG):22AWG to 16AWG; Contact Material:Copper; Contact Plating:Tin ;RoHS Compliant: Yes', '2012-10-16T15:39:44+00:00')

事实证明,我们公司的另一位开发人员针对同一个数据库使用完全不同的代码库(但类似的方法),他面临着完全相同的特殊障碍。

我们应该做些什么特别的事情来查询描述值,比如确保我们的 SELECT 的行为符合预期

4

2 回答 2

1

重复条目仅由重复的主键触发,而与使用的其他值无关。如果 product_id 是主键(?),那么可能存在 product_id = 403466 具有不同其他值的记录?

于 2012-10-16T16:03:16.617 回答
1

我找到了!!!!

端子串长度

search/insert 语句的长文本值超过了列大小,因此,在搜索该长字符串时没有完全匹配,但在插入时,字符串的末尾被截断,新截断的字符串确实有完全匹配。

我希望这可以帮助将来的人:)

于 2012-10-16T18:06:54.320 回答