2015-08-29 1 views
0

Я хочу найти вопрос №. который может быть 1, 1a, 1b, 2, 2c, 11. Как я могу искать 1, получая 1, 1a, 1b, но не 11. И если я ищу 1b, выйдет только 1b. Есть ли какая-нибудь функция?sql, где числа в строке равны ключевому слову

с использованием MySQL

DATA: 
id |question |q_no. 
1  |XX   |1 
2  |ABC  |1a 
3  |ED   |1c 
1  |CD   |11 

Desired sets: 
when searching "1": 
1  |XX   |1 
2  |ABC  |1a 
3  |ED   |1c 

when searching "1a": 
2  |ABC  |1a 

извините за опоздание

+4

Что RDBMS вы используете? – Mureinik

+2

Ваш вопрос слишком расплывчато для ответа. Попробуйте: (1) включая выборочные данные; (2) желаемые результаты; (3) код, который вы написали; (4) пометьте вопрос в базе данных, которую вы используете. Кроме того, может помочь SQL-скрипт. –

+0

Сделайте функцию do_sql, которая принимает первый аргумент для предложения 'LIKE' where в команде sql, которую создаст функция. Затем вызовите функцию с нужными параметрами: 'do_sql '1b" ''. Или объясните, что вы действительно хотите и что вы пробовали. –

ответ

1

Может быть, это может помочь. Он запускается в mysql.

SELECT--- 
FROM--- 
WHERE question_no REGEXP '1[^1]' 

Он покажет question_no начинаются с символа '1' и затем, кроме символа '1'

1

Я думаю regexp это лучший подход:

where question_no regexp concat('^', $SearchQ, '[^0-9]') 
Смежные вопросы