1. SQL / Говнокод #24157

    −2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    SELECT clips.NAME, clips.DATE_OUT, clips.AUTHOR, clips.TOPIC, clips.ANNOT
    FROM clips
    WHERE (clips.NAME like ("*" + [Forms]![ПОИСК]!clips_NAME + "*") Or [Forms]![ПОИСК]!clips_NAME = "") And
    (clips.topic like ("*" + [Forms]![ПОИСК]!topics_NAME + "*") Or [Forms]![ПОИСК]!topics_NAME = "" Or  [Forms]![ПОИСК]!topics_NAME Is Null) And
    (clips.Author like ("*" + [Forms]![ПОИСК]!Authors_NAME + "*") Or [Forms]![ПОИСК]!Authors_NAME = "" Or  [Forms]![ПОИСК]!Authors_NAME Is Null) And
    (clips.ANNOT like ("*" + [Forms]![ПОИСК]!ANNOT + "*") Or [Forms]![ПОИСК]!ANNOT = ""Or [Forms]![ПОИСК]!ANNOT Is Null) And
    ((clips.Date_out <=  [Forms]![ПОИСК]!Date_max And clips.Date_out >=  [Forms]![ПОИСК]!Date_min) Or clips.Date_out Is Null);

    База данных на Access.
    Переделка другой БД, в которой зачем-то все авторы хранились в отдельной таблице, а в основной таблице - айдишники. Можно ведь просто прописать авторов в основную таблицу и не париться.

    Запостил: Steve_Brown, 20 Апреля 2018

    Комментарии (7) RSS

    • Ну, попробуй использовать "mysql_real_escape_string()".
      Ответить
    • существуют какие-либо альтернативы "SQL"?
      Ответить
    • существуют какие-либо альтернативы "SQL"?
      Ответить
      • Разумеется. Существует множество способов хранения данных, отличных от реляционных (графовые базы, ки-валуе базы, OLAP кубы, итд) и у них совсем другие языки.

        И API к реляционным субд тоже не обязано состоять из DDL/DML SQL.
        Ответить
        • Некоторые путают "SQL" с реляционностью.

          Так вот "SQL" — это язык, а реляционная база — это база, состоящая из таблиц, которые можно джойнить. Единственное, что их объединяет — оператор "JOIN".

          Гипотетически через псевдо-SQL можно обращаться к нереляционным базам. В Постгресе ячейка может хранить массивы. В MariaDB таблица может хранить графы:
          https://mariadb.com/kb/en/library/oqgraph-storage-engine/

          Есть даже ки-валуе базы с псевдо-SQL.

          И наоборот, к реляционным базам можно обращаться не через SQL.
          Ответить
          • И кроме того один из отцов реляционных СУБД был не в восторге от языка SQL.

            >>можно обращаться к нереляционным базам
            У MS было много ADODB драйверов к различным подсистемам, не имеющим отношения к реляционным СУБД, и как всякий ADO они предоставляли SQL интерфейс (а был так же и обычный API).

            Был, например, WQL: язык для запросов к WMI.
            SELECT * FROM Win32_Service

            возвращал все сервисы.

            Был ADODB драйвер для Active Directory (это дерево, по сути LDAP)
            SELECT title, telephoneNumber From 'LDAP://DC=FOO, DC=COM' WHERE   
            objectClass='user'


            >>И наоборот, к реляционным базам можно обращаться не через SQL.
            Да. Мы же тут недавно говорили про clipper, разве там был SQL?

            И наконец есть языки похоже на SQL, но им не являющиеся.
            Например MDX для запросов к OLAP кубам
            SELECT
               { [Measures].[Visitors] } ON COLUMNS,
               { Languages].[PHP], [Languages].[SQL] } ON ROWS
            FROM Items
            WHERE ( [Comments].[Anon])
            Ответить
            • напиздел малеха с терминологией
              драйвера были конечно к OLEDB, ADO работал поверх.
              Ответить

    Добавить комментарий