2023/09/08

MySQL將某一欄位的值根據"/"斜線將字串拆分成兩個字串

 在MySQL中,可以使用SUBSTRING_INDEX函數將某一欄位的值根據"/"斜線將字串拆分成兩個字串。以下是一個示例:


假設有一個表`t`,其中有一個欄位`c`,其值為"foo/bar",現在要將其拆分成兩個字串。

SELECT SUBSTRING_INDEX(c, '/', 1) AS first_part, SUBSTRING_INDEX(c, '/', -1) AS second_part FROM t;

在上面的查詢語句中,SUBSTRING_INDEX函數的第一個參數是要拆分的欄位,第二個參數是分隔符,這裡使用"/"斜線作為分隔符。第三個參數是要取得的子字串的索引,這裡使用1和-1表示第一個和最後一個字串。透過這個查詢語句,可以將"foo/bar"拆分成兩個字串,分別為"foo"和"bar"。

需要注意的是,如果欄位值中沒有分隔符"/",則SUBSTRING_INDEX函數會返回整個字串。如果欄位值中有多個分隔符,則可以使用第三個參數來指定要取得的子字串的索引。如果想要將拆分後的兩個字串存儲到新的欄位中,可以使用UPDATE語句更新表中的記錄。

在MySQL中,資料表 web_tb_product 對欄位 title, description 做全文檢索

 在MySQL中,可以使用全文檢索功能來對資料表中的特定欄位進行全文檢索。以下是對資料表 `web_tb_product` 中的 `title` 和 `description` 欄位進行全文檢索的示例:

1. 確認MySQL中已經啟用了全文檢索功能。若未啟用,可以使用以下SQL語句啟用:

   ALTER TABLE web_tb_product ADD FULLTEXT(title, description);

   這會將 `title` 和 `description` 欄位添加到全文檢索索引中。

2. 使用 `MATCH...AGAINST` 語句進行全文檢索。以下是一個示例查詢:

   SELECT * FROM web_tb_product WHERE MATCH(title, description) AGAINST('搜尋關鍵詞');

   在這個查詢中,`MATCH(title, description) AGAINST('搜尋關鍵詞')` 用來指定要搜索的欄位和搜索的關鍵詞。可以使用任何有效的MySQL表達式作為關鍵詞,例如單詞、短語、通配符等。 `MATCH...AGAINST` 還支持通過添加 `IN BOOLEAN MODE` 子句來使用布爾搜索邏輯。

注意:使用全文檢索時,搜索的字符串長度必須大於或等於全文檢索最小字詞長度,否則檢索結果可能不正確。

取得MySQL中GROUP BY結果的列數

 要獲取MySQL中GROUP BY結果的行數,可以使用COUNT函數。具體步驟如下:

1. 編寫GROUP BY查詢語句,將數據按照需要的分組字段進行分組。

2. 在查詢語句中使用COUNT函數統計每個分組的行數。 COUNT函數的語法如下:

   SELECT COUNT(*) FROM table_name GROUP BY column_name;

   這將返回每個分組的行數。

3. 如果只需要獲取分組的總行數,則可以將COUNT函數應用於整個查詢結果集,而不是每個分組。例如:

   SELECT COUNT(*) FROM (SELECT * FROM table_name GROUP BY column_name) as t;

   這將返回所有分組的總行數。

需要注意的是,使用COUNT函數統計行數時,如果查詢結果中包含NULL值,則COUNT函數不會將其計算在內。如果需要統計NULL值的行數,可以使用COUNT(*)函數,而不是COUNT(column_name)函數。

讓表格整行 tr 可以被選取

 要讓表格 `<table>` 中的整行 `<tr>` 可以點擊跳轉到超連結,可以使用 JavaScript 或者 jQuery 實現,具體步驟如下:


1. 給每個要點擊的 `<tr>` 加上一個 `data-href` 屬性,該屬性的值為要跳轉的超連結地址,例如:


<table class="table">

  <tbody>

    <tr data-href="https://www.example.com">

      <td>表格內容 1</td>

      <td>表格內容 2</td>

      <td>表格內容 3</td>

    </tr>

    <tr data-href="https://www.example.com">

      <td>表格內容 4</td>

      <td>表格內容 5</td>

      <td>表格內容 6</td>

    </tr>

  </tbody>

</table>


2. 使用 JavaScript 或者 jQuery 監聽每個有 `data-href` 屬性的 `<tr>` 元素的點擊事件,獲取 `data-href` 屬性的值並將頁面跳轉到對應的超連結地址,例如:


<script>

  // 使用 JavaScript 實現

  var tableRows = document.querySelectorAll('tr[data-href]');

  tableRows.forEach(function(row) {

    row.addEventListener('click', function() {

      window.location.href = this.dataset.href;

    });

  });


  // 使用 jQuery 實現

  $('tr[data-href]').click(function() {

    window.location.href = $(this).data('href');

  });

</script>


以上就是讓表格 `<table>` 中的整列 `<tr>` 可以點擊跳轉到超連結的方法,可以根據實際情況進行選擇使用 JavaScript 或者 jQuery 實現。

li 與 ul 不顯示預設符號

 在 HTML 中,`<ul>` 和 `<li>` 標籤用於創建無序列表,預設會在每個列表項目前面加上一個符號,例如圓點、方塊等,這些符號是由瀏覽器預設樣式提供的。


如果希望不顯示這些預設符號,可以使用 CSS 中的 `list-style` 屬性來控制。`list-style` 屬性用於定義列表的符號類型、位置和圖像等屬性。


以下是兩種方式可以不顯示 `<ul>` 的預設符號:


1. 使用 `list-style: none;` 屬性:這個屬性可以刪除列表項目前面的符號,例如:


<ul style="list-style: none;">

  <li>列表項目 1</li>

  <li>列表項目 2</li>

  <li>列表項目 3</li>

</ul>


2. 使用 `list-unstyled` class:Bootstrap 也提供了一個 `.list-unstyled` class,可以實現相同的效果。例如:


<ul class="list-unstyled">

  <li>列表項目 1</li>

  <li>列表項目 2</li>

  <li>列表項目 3</li>

</ul>


以上兩種方式都可以刪除 `<ul>` 的預設符號,具體使用哪種方式可以根據個人喜好和實際需求進行選擇。

Bootstrap設置文字不換行

 如果希望 Bootstrap 中的文字不換行,可以使用 `white-space` 屬性來控制文字的換行方式。`white-space` 屬性用於指定如何處理元素中的空白和換行符號。

以下是兩種控制文字不換行的方式:

1. 使用 `white-space: nowrap;` 屬性:這個屬性會禁止文字換行,讓文字在同一行中顯示。例如:

<p class="nowrap">這是一段不換行的文字,這是一段不換行的文字,這是一段不換行的文字。</p>


<style>

  .nowrap {

    white-space: nowrap;

  }

</style>


2. 使用 `text-nowrap` class:Bootstrap 也提供了一個 `.text-nowrap` class,可以實現相同的效果。例如:

<p class="text-nowrap">這是一段不換行的文字,這是一段不換行的文字,這是一段不換行的文字。</p>


以上這兩種方式都可以達到不換行的效果,具體使用哪種方式可以根據個人喜好和實際需求進行選擇。

Bootstrap設置card的底色

 Bootstrap 的 Card 元件提供了多種方式來設定底色,以下列舉其中幾種:


1. 使用內建的背景色 class:Bootstrap 提供了多種背景色的 class,可直接套用在 Card 元件上,例如:

<div class="card bg-primary">

  <div class="card-body">

    This card has a primary background color.

  </div>

</div>


2. 自定義背景色:如果需要使用其他顏色,可以在 CSS 中自定義背景色,例如:

<style>

  .my-card {

    background-color: #f1c40f;

  }

</style>

<div class="card my-card">

  <div class="card-body">

    This card has a custom background color.

  </div>

</div>


3. 使用線性漸層背景色:Bootstrap 也提供了線性漸層背景色的 class,可實現更豐富的視覺效果,例如:

<div class="card bg-gradient-primary">

  <div class="card-body">

    This card has a linear gradient background color.

  </div>

</div>


以上是幾種常見的設定 Card 元件底色的方式,可以根據實際需求選擇適合的方法。

Bootstrap的按鈕樣式

 Bootstrap 中提供了多種按鈕的 class,以下是常見的幾種:


1. `.btn-sm`:定義小型按鈕,適用於需要節省空間的場景。


2. `.btn-xs`:定義超小型按鈕,比 `.btn-sm` 還要小,通常用於需要非常節省空間的場景。


3. `.btn-outline-*`:定義空心按鈕,只有邊框和文本,沒有背景色,可與其他樣式組合使用。


4. `.btn-block`:定義滿寬度的按鈕,通常用於需要突出重點的場景,如登入、註冊等。


5. `.disabled`:定義禁用按鈕,使按鈕無法點擊,並改變按鈕外觀。


以上這些 class 可以與 `.btn` 樣式一起使用,以自定義按鈕的大小、樣式和行為。例如,`<button class="btn btn-primary btn-sm">Small Button</button>` 會創建一個小型、帶有主要顏色的按鈕。

2023/06/28

jQuery選擇元素,包含class .service-time,但排除class .service-10:30

 在 jQuery 中,你可以使用 `:not` 偽類選擇器來排除特定的類。要選擇包含類 `.service-time` 但不包含類 `.service-10:30` 的元素,你可以使用以下代碼:

$('.service-time:not(.service-10\\:30)')

在這個選擇器中,`:not` 偽類用於排除具有特定類的元素,而 `.` 用於選擇類名。由於 `:` 在選擇器中有特殊含義,表示偽類選擇器的開始,因此 `.` 和 `:` 之間需要使用兩個反斜杠 `\\` 進行轉義,以確保選擇器的正確性。

請注意,選擇器中的 `.` 和 `:` 是區分大小寫的,因此確保它們與你的 HTML 中的類名匹配。

jQuery 計算checkbok物件class名稱為.service-time被選取的數量

要計算選中的具有類名為 `.service-time` 的複選框的數量,你可以使用 jQuery 的 `:checked` 選擇器和 `length` 屬性。下面是一個示例代碼:

var count = $('.service-time:checked').length;

console.log(count);

在上面的代碼中,`.service-time:checked` 選擇器用於選取具有類名為 `.service-time` 並且被選中的複選框元素。然後,使用 `length` 屬性獲取選中的元素數量,並將其存儲在變量 `count` 中。最後,你可以將計數輸出到控制台或進行其他處理。

請注意,上述代碼假設你已經包含了 jQuery 庫,並在頁面加載時執行了該代碼。如果沒有包含 jQuery 庫,請確保在使用該代碼之前正確加載 jQuery 庫。