Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Переменные Perl в запросах к БД  (Прочитано 860 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн mayor28

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Переменные Perl в запросах к БД
« : 30 Октября 2009, 13:22:48 »
други, товарищи! помогите справиться с бедой... есть запрос к БД:
$query = qq~SELECT distinct p.*, substring(p.partnumber from '-....$') as last4
                      FROM parts p
                      INNER JOIN p1 ON (substring(p.partnumber from '-....$') = substring(p1.partnumber from '-....$') AND p.id <> p1.id)
                      WHERE p.description NOT SIMILAR TO '%(<font>|=)%' AND p.sellprice > 0 $where
                      ORDER BY last4~;

при выполнении,  "$'" заменяется на значение переменной $', а оно мне совсем не надо... или подскажите как мне извлечь последние выражение вида '-0000' из поля таблицы, а то я не силен в регулярных выражениях. сделал вариант, но он выдает первую найденную комбинацию (partnumber может быть вида "ups100-1000-0304").

Заранее спасибо!!!

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: Переменные Perl в запросах к БД
« Ответ #1 : 30 Октября 2009, 13:43:58 »
Запрос - константная строка?

Там $where на предпоследней строке - это переменная или оператор SQL?

Надо использовать q вместо qq, тогда последовательности символов $имя не будут интерполироваться.
http://perldoc.perl.org/perlop.html#Quote-Like-Operators
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн mayor28

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: Переменные Perl в запросах к БД
« Ответ #2 : 30 Октября 2009, 13:59:05 »
Надо использовать q вместо qq, тогда последовательности символов $имя не будут интерполироваться.
http://perldoc.perl.org/perlop.html#Quote-Like-Operators

вот спасибочки большое!!! а переменную можно и присоединить...

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: Переменные Perl в запросах к БД
« Ответ #3 : 30 Октября 2009, 14:57:40 »
или подскажите как мне извлечь последние выражение вида '-0000' из поля таблицы, а то я не силен в регулярных выражениях. сделал вариант, но он выдает первую найденную комбинацию (partnumber может быть вида "ups100-1000-0304").

$partnumber="ups100-1000-0304";
if($partnumber =~/ups\d+\-\d+\-(\d+)/) {
  $pn=$1;
}
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

 

Страница сгенерирована за 0.021 секунд. Запросов: 22.