使用Go中的查询Args获取记录

时间:2018-01-17 14:41:56

标签: mysql go

我需要帮助才能使用Go。

从表中获取记录

我的问题是我正在编写MySQL查询并添加另一个where子句,即HPhone编号,此处HPhone编号插入数据库中,格式为999-999-9999。我以{{1}格式传递此HPhone编号}}。与正确的数据库字段值不匹配。并且我使用9999999999在数字之间添加连字符但是它没有获得记录但是当我像SUBSTRING一样没有999-999-9999时它会返回记录。

这里我演示了我是如何使用它的。

SUBSTRING

帮助将不胜感激。 提前谢谢。

2 个答案:

答案 0 :(得分:2)

您可以使用REPLACE代替SUBSTRING,而不是queryArgs := []interface{}{RouteAvailability.Depot} if HPhone != "" { strQry += ` AND REPLACE(HPhone, '-', '') = ?` queryArgs = append(queryArgs, HPhone) }

SUBSTRING

如果可能,我会建议您对数据进行规范化,即确定特定数据类型的规范格式,并且每次程序收到包含您将其格式化为规范形式的数据类型的输入时,这样您就可以避免处理REPLACE__eq__,或多种不一致的格式等。

答案 1 :(得分:0)

这不会起作用,因为您正在使用预准备语句,并且当HPhone不为空时您正在构建的参数将以转义形式使用 - 因此在执行查询时,它不会比较{ {1}}值包含某些子字符串的计算结果,但字符串包含HPhone