I have a database where a table has, amongst other, two columns: group and article. Both are int but is always formatted before shown to the user:
The group is always shown as 2 digits, with leading zeros if
needed.
The article is always shown as 4 digits, with leading zeros
if needed.
The group and article are separated with a dash -
Example:
An item with group = 1 and article = 23 will be shown to the user as 01-0023.
Moving on.
I have a php-script in which as user can search for an article. The user will of course write the article in the formatted way. The script I have today, uses regular expressions to separate a search for an article from free-text and then isolates the group and article from each other before searching the database.
My question is, is it possible to pass the formatted string (e.g. 01-0023) in the query instead and if so, how would I manipulate the SQL?
解决方案
If you want a comparison to a value shown to the user, you can do:
where `group` = substring_index(@Group_Article, '-', 1) + 0 AND
`article` = substring_index(@Group_Article, '-', -1) + 0