Выборка по определенному значению из MySQL в Java JDBC

448
24 декабря 2016, 15:48

Прошу помочь разобраться: Я сделал выборку из БД MySQL. Сейчас в БД таблицы Wordpress, собственно я сделал выборку постов таким вот образом:

String sql = "SELECT post_date, post_title, guid FROM wp_posts";

Все работает корректно. Но я хотел бы сделать так:

String sql = "SELECT post_date, post_title, guid FROM wp_posts WHERE post_type = post ORDER BY DESC";

То есть, я хочу вывести посты с post_type post, но почему-то не получается :( В чем может быть причина, подскажите, пожалуйста.

Полный код программы:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Main {
    // JDBC URL, username and password of MySQL server
    private static final String url = "jdbc:mysql://localhost/dbwp";
    private static final String user = "user";
    private static final String password = "pass";
    public static void main(String[] args) {
        Connection conn;
        Statement stmt;
        try{
            //Open a connection
            System.out.println("Connecting to a selected database...");
            conn = DriverManager.getConnection(url, user, password);
            System.out.println("Connected database successfully...");
            //Execute a query
            System.out.println("Creating statement...");
            stmt = conn.createStatement();
            // Extract records without any condition.
            System.out.println("Fetching records without condition...");
            String sql = "SELECT post_date, post_title, guid FROM wp_posts WHERE post_type = post ORDER BY DESC";
            ResultSet rs = stmt.executeQuery(sql);
            while(rs.next()){
                //Retrieve by column name
                String post_date  = rs.getString("post_date");
                String post_title  = rs.getString("post_title");
                String post_link = rs.getString("guid");
                //Display values
                System.out.println("Дата публикации: " + post_date);
                System.out.println("Заголовок: " + post_title);
                System.out.println("Ссылка: " + post_link);
                System.out.println("");
            }
            rs.close();
        } catch (SQLException sqlEx) {
            sqlEx.printStackTrace();
        }
    }
}
Answer 1

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DESC

Эта ошибка связана с тем, что ORDER BY DESC не является корректной записью. В ORDER BY нужно указывать (как правило) имя столбца, по которому будет происходить сортировка. Например, ORDER BY post_date DESC.

Unknown column 'post' in 'where clause'

Говорит о том, что в таблице wp_posts нет столбца post - соответственно, в WHERE столбец с таким названием участвовать не должен. Если предполагалось что значение post_type должно равняться строке "post", то нужно было сделать так: post_type = 'post'.

READ ALSO
YouTube download

YouTube download

Здравствуйте! Возможно, этот вопрос тут задавали, но я не нашёл (также гугл тоже отнекивается)Суть вот в чем: как достать ссылку на скачивание...

325
Текст по всей ширине

Текст по всей ширине

Для того, чтобы текст был по всей ширине, я использовал align="justify"Всё получилось, но появился один баг: в тексте создаются большие пробелы

361
Залинковать CSS и HTML файл

Залинковать CSS и HTML файл

Не получается привязать CSS к ХТМЛу

341
Мелкие элементы в header лучше верстать через float или через inline-block? [требует правки]

Мелкие элементы в header лучше верстать через float или через inline-block? [требует правки]

Как лучше выстраивать такие мелкие элементы, как на скриншоте (логотип, поиск, закладки и тд

293