我遇到了一个问题,我正在制作数独游戏,拼图的解决方案以这种格式存储: xxxxxxxxx xxxxxxxxx xxxxxxxxx xxxxxxxxx xxxxxxxxx xxxxxxxxx xxxxxxxxx xxxxxxxxx xxxxxxxxx
9组之间有8个空格,我似乎无法查询该行,它返回一个空白行..
这是因为有空格吗?如果我选择“xxxxxxxxx%”之类的解决方案 然后该行正确返回..
我是否只生成了50,000行:(如果是这样,我该如何解决这个间距问题?
这里编辑的是查询:
select * from sudoktion_puzzles
where
p_solution='582917643 467283195 391546278 159362784
674851329 823794561 216438957 938675412 745129836'
答案 0 :(得分:4)
在您引用的查询中,在倒数第二个术语之前有两个空格(以“9”开头的空格)。如果这是您的实际查询代码而不是表中的实际值,则可以解释您的问题。
答案 1 :(得分:1)
关于SQL Server(ANSI兼容)中你真正需要记住的空格的唯一特点是尾随空格不会被考虑到LEN()
或相等比较中。
您的数据类型是否有任何特殊之处?
它们是否足以容纳整个字符串(至少89个字符)?
如果你想摆脱空格,你可以简单地删除空格:
UPDATE sudoktion_puzzles
SET p_solution = REPLACE(p_solution, ' ', '')
答案 2 :(得分:1)
仔细检查在之前或之后的任何地方没有第二个空格。
运行
SELECT * FROM sudoktion_puzzles
WHERE LEN(p_solution) <> 89
并查看是否返回了您无法获得的行。如果是这样,那么你有额外的空间。
答案 3 :(得分:1)
嘿伙计们这些空间实际上是换行符/输入字符这个修复了它:
UPDATE sudoktion_puzzles
SET p_board = REPLACE(REPLACE(REPLACE(p_board, CHAR(10), ''), CHAR(13), ''), CHAR(9), '')