Выполнение запроса по первым 3 буквам значения базы данных

0

Я могу получить сумму моего "ctr" из моей базы данных с нижеследующим запросом. Но мой ctr длиннее 5 букв. Я должен проверить первые 3 письма и получить значение суммы в соответствии с этой 3 буквой

String qry15 = "SELECT SUM(sales),SUM(box) FROM table WHERE ctr = '"+ comboBox.getSelectedItem().toString() +"'" ;

Поэтому мне нужно что-то наподобие FROM table WHERE ctr.first3letter

Как это возможно?

  • 0
    Вы не должны объединять значения в такую строку запроса. Это небезопасно, так как открывает вам возможность внедрения SQL. Вы должны использовать подготовленный оператор с параметрами.
Теги:
database

2 ответа

2
Лучший ответ

Вы можете использовать substr() из MySql:

String qry15 = "SELECT SUM(sales),SUM(box) FROM table WHERE substr(ctr,1,3) = '"+ comboBox.getSelectedItem().toString() +"'";

substr() работает аналогично Java String.substring(). Только индикаторы подсчитываются по-разному (начиная с 1).

  • 0
    Это работает. Спасибо
0

Вы также можете использовать LEFT,

String qry15 = "SELECT SUM(sales),SUM(box) FROM table WHERE LEFT(ctr,3) = '"+ comboBox.getSelectedItem().toString() +"'";

LEFT() возвращает указанное количество символов слева от строки.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню