开发者

do spaces in sql tables fubar queries?

I'm having an issue I'm generating sudoku puzzles and the solution to the puzzle are being stored in this format: xxxxxxxxx xxxxxxxxx xxxxxxxxx xxxxxxxxx xxxxxxxxx xxxxxxxxx xxxxxxxxx xxxxxxxxx xxxxxxxxx

8 sp开发者_JAVA技巧aces between the 9 sets, I cannot seem to query the row, it returns a blank row..

Is this because there is spaces? If I do a select where solution like 'xxxxxxxxx%' then the row returns properly..

Did I just generate 50,000 rows for nothing :( If so how should I fix this spacing problem?

edit here is the query:

select * from sudoktion_puzzles 
where
p_solution='582917643 467283195 391546278 159362784 
674851329 823794561 216438957 938675412 745129836'    


In the query you quoted, you have two spaces before the second-to-last term (the one beginning with '9'). If that's your actual query code but not the actual value in the table, it would explain your problem.


About the only thing peculiar about spaces you really need to remember about SQL Server (ANSI compliant) is that trailing spaces are not factored into LEN() or equality comparisons.

Is there anything peculiar about your data types?

Are they long enough to hold the entire string (at least 89 characters)?

If you want to get rid of the spaces, you can simply remove the spaces with:

UPDATE sudoktion_puzzles
SET p_solution = REPLACE(p_solution, ' ', '')


Double check that there isn't a second space anywhere, before or after.

Run

SELECT * FROM sudoktion_puzzles
 WHERE LEN(p_solution) <> 89

and see if you return the row you can't get otherwise. If so then you have extra spaces.


Hey guys those spaces were actually newline/enter characters this fixed it:

UPDATE sudoktion_puzzles
SET p_board = REPLACE(REPLACE(REPLACE(p_board, CHAR(10), ''), CHAR(13), ''), CHAR(9), '')
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜