3

i have following entry in the database:

id       summary
1       numbers of word 200 in the doc 0x123
2       [main] numbers of word 150 in the doc 0x678
3       numbers of word 678 in the doc 0x4536 
4       this file has empty
5       not completed
6       numbers of word 86542 in the doc 0x6356 

I want to retrieve the id from the database "Page" and table name "details" with respect to summary value. i want all the four id (1,2,3,6) with summary value "numbers of word <any_number> in the doc <any_number> And manage with the spaces also...

1 Answer 1

5

If you can accept the tradeoff that % also matches non-digits, this is trivial using the LIKE SQL operator, which is also cross platform.

select * from details where lower(summary) LIKE 'numbers of word % in the doc %'

If you only want to match digits and spaces, I think you do need regular expressions, which thankfully are directly supported in MySQL. MySQL 5.1 manual, section 12.5.2: Regular Expressions. Something like this:

select * from details
where lower(summary) REGEXP '^numbers of word [0-9 ]+ in the doc [0-9x ]+$'

If you don't need or want case insensitivity you can do away with the call to LOWER(). I'm including x in the second regular expression because your numbers are prefixed with 0x (hexadecimal?).

Do keep in mind that indexes likely are not usable with LIKE or REGEXP which means that the query will incur a comparatively very large I/O cost.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.